═══ 1. Readme First ═══ FASTLST Readme First ═══ 1.1. Whatsnew ═══ Whatsnew If you are using an older version of FastLst, please read WhatsNew.Txt before using this version. ═══ 1.2. How to contact the author ═══ How to contact the author If you have suggestions, bug reports, observations about the docs, please feel free to contact me at the following address: Alberto Pasquale of 2:332/504@fidonet Everyone can call crash: 2:332/504@fidonet +39-59-243882 V34 VFC V32T H16 24h Postal Address: Alberto Pasquale, Viale Verdi 106, 41100 Modena, Italy ═══ 1.3. Support ECHO ═══ Support ECHO I am originating an international support echo for all my programs. If you are interested, please ask your echo feeder to find a suitable link for the APWORKS area, originated on 2:332/504@fidonet. In addition, I regularly read the international OS2BBS echo. ═══ 1.4. TIC distribution ═══ TIC distribution All my BBS related programs are distributed via a TIC file area. If you want to join, please ask your file feeder to find a suitable link for the APBBS area. ═══ 1.5. Where to look for support areas ═══ Where to look for support areas If your echo/file feeder does not carry APWORKS, you can ask for information about where to find a suitable link to: Alberto Pasquale 2:332/504 (Modena, Italy) Roland Schiradin 2:2454/169 (Eltville, Germany) Harald Kamm 2:2490/3045 (Bamberg, Germany) Vince Testa 1:153/8475 (New Westminster, BC, Canada) ═══ 1.6. Bug Reports ═══ Bug Reports If you find out a real bug, I will do my best to fix it and make the new version available in a few days. To do that, I need your cooperation: when you find a strange behaviour, double check your configuration and the manual to be really sure it's not your fault, then study the conditions in which the bug appears and, in the end, send me your detailed report about the bug together with your config file and all the stuff necessary to replicate the problem. I can fix a bug only if I am enabled to reproduce it ! ═══ 1.7. Files in the archive ═══ Files in the original archive: FastLst.Exe (OS/2 archive) The 32 bit executable FastL16.Exe (OS/2 archive) The 16 bit executable FastLDos.Exe (DOS archive) The 32 bit executable FastLD16.Exe (DOS archive) The 16 bit executable Dos4Gw.Exe (DOS archive) The Dos extender Compress.Cfg The sample compression definition file Fast_Min.Cfg The sample minimal configuration file Fast_Ful.Cfg The sample full configuration file FastLst.Ico An Icon for FastLst FastLst.Inf The Inf documentation file Whatsnew.Txt Fixes and additions Readme.1st Important notes FastLst.Doc The documentation License.Doc The license for using FastLst Register.Doc Info on Registration Register.For The Registration Form Credit.Crd The additional credit card registration form File_Id.Diz The standard archive description FastLst.Inf (OS/2 manual) is provided with the DOS version too, since there are INF viewers under Dos. For example, the very nice viewer by Damir Ujcic: VIEW01.ZIP, available for F/R from 2:332/504@fidonet: it contains a text mode viewer in both OS/2 and Dos versions. ═══ 1.8. How to get the lastest version ═══ How to get the latest version Everybody can file request the latest revision from: APWORKS 2:332/504@fidonet +39-59-243882 V34 VFC V32T H16 24h File requests could be declined between 23:00 and 06:00 GMT. German Support (Roland Schiradin) 2:2454/169@fidonet +49-6123-61750 V32B 24h USA Support (Dan Polivy) 1:101/318@fidonet +1-617-964-1633 V32B 24h Always use the magics FASTLST (OS/2) or FASTLSTD (DOS). ═══ 1.9. Other Programs by Alberto Pasquale ═══ Programs by Alberto Pasquale available for f/r from APWORKS: Magic Name Description FASTLST FLST???.* OS/2 The ultimate v7 Nodelist processor. Fully automated processing and maintenance, no need for clumsy batch files. Can report to Squish or *.MSG areas, multitasking friendly, many options. FASTLSTD FLSTD???.* DOS FLSTBETA OS/2 FastLst public Beta, if any. FLSTDBETA DOS NEF NEF???.* OS/2 TIC file distribution and announcement for Binkley-style outbound and *.MSG or Squish message base, file-Areafix included, full multitasking support (BSY, file sharing etc.), exceptionally flexible Multi-Aka support. NEFD NEFD???.* DOS NEFBETA OS/2 NEF public Beta, if any. NEFDBETA DOS FLM FLM???.* OS/2 File List Manager for Maximus, very flexible way of compiling many different lists at a time. FLMD FLMD???.* DOS NMFWD NMFW*.* DOS Multi-Robot: netmail forward to Sysop's point, Maximus user and file management via netmail messages, areafix for squish, some work-arounds for squish bugs, point routing to their boss if no phone number for them in the nodelist. NMFW OS/2 Not yet available. SQPRV SQPV???.* DOS Local area (private/public) forward to points for Squish. The (Co)SysOp points can receive the whole area. SQPV OS/2 Not yet available. ----- SQFM100.ZIP OS/2 Allows to change the "from address" of PKTs before they are compressed. To be used with Squish. For example, it is useful to Hub coordinators who want to continue processing mail with their primary address for current links while processing with the administrative address for their uplink BackBone. FreeWare. Current versions (April, 24th 1995): NEF 2.00 (Beta 2.15), FastLst 1.30, FLM 1.24, NMFWD 1.74, SQPrv 1.02. ═══ 1.10. Development of V7 programs ═══ How to develop programs that use the Version 7 nodelist: If you are interested in developing programs that access the V7 nodelist, you can find all the necessary information in the BinkleyTerm 2.50 sources (BSRC_250.LZH) or you can use the OS/2 DLL provided by Jim Dailey (V7NL.ZIP); both files are requestable from 2:332/504@fidonet ═══ 1.11. Wish List ═══ FastLst Wish List To help me provide a better and better program, please let me know your problems and your wishes about future versions of FastLst. Please let me know your opinion: Alberto Pasquale 2:332/504@fidonet BBS & FAX: +39-59-243882 V34 VFC V32T H16 FAX Viale Verdi 106 41100 Modena Italy ═══ 2. Whatsnew ═══ FASTLST Changes and Additions ═══ 2.1. 1.30 ═══ 1.30 - WARNING: FastLst v 1.30 is NOT a true "Drop In" replacement for v 1.20, anyway there is little to change: - Add a "CompressCfg " line to the "Global Info" section of your fastlst.cfg. - Remove all "Arc" and "UnArc" lines. - In each "Input block" section where you would like to be able to compress new nodelists (e.g. where Nodediffs are processed and you were using "Arc" statements), add one or more "ArcMethod ,[] ..." lines, where represents one of the archiving methods defined in (e.g. ZIP, LH, etc.) and the optional is an override for the initial character of the archived file extension (in the case it is named after the day of the year and you do not want to use the first character of the default extension, as defined in ). - See FastLst.Doc for more information. - DOS: There is a new 32 bit version with the DOS4GW extender. - OS/2: There is a new 16 bit version for those who still use OS/2 1.3. - OS/2 32: the "Priority" statement can be used to change the priority for the FastLst process. - The 32 bit versions can now be configured to use the temporary file instead of working in memory. The "FileMode" statement and the "-t" command line switch are used for selecting the mode. - The routines used in 32 bit versions for "in memory" work (no temporary file) have been completely rewritten in order to need far less memory. This way, the 32 bit versions usually allocate about 1/4 of the memory they needed with v 1.20. This is an important issue on systems with not too much physical RAM (especially for the DOS version, that cannot efficiently use virtual memory), but the benefits are noticeable even on systems with plenty of RAM (less OS/2 swap reorganization when FastLst ends). - The "TmpPath" config statement is no longer needed: FastLst will use the TMP or TEMP environment variable if no TmpPath statement is used. - If you want FastLst to kill all uncompressed nodelist (except for those that are not stored in compressed format too), just add a "KillSource" line to the "Global Info" section of FastLst.cfg. - All the ArcList and Arcdiff statements can now work WITHOUT the specification of the first letter of the extension, i.e. "ArcList NodeList.z??" can be changed to "ArcList NodeList.???" and "ArcDiff NodeDiff.z??" can be changed to "ArcDiff NodeDiff.???". This way FastLst will automatically handle any archive type that shows up in the ArcList directory. - Now all the nodelists and nodediffs can be maintained in many different archived formats. The archiving method for NodeDiffs must be specified using "ArcDiffMethod ,[] ...". - The "block" structure of the config file remains, but it becomes a lot more flexible: the majority of config verbs can now be anywhere in the config file, but they have effect on different nodelists depending on their position in the cfg. E.G.: "PasswordFile", being an address related verb, can be both in the "Output Nodelist" and "Input Nodelist" sections. If you use it after "Version7" but before the first "NodeList", then it will be used for all the NodeLists of that "Output block". If you use it after a "NodeList", it will be used (as in the past) for that Nodelist only. Other non-address related verbs (e.g. ArcMethod) can be everywhere (global, output nodelist, input nodelist) and the will affect the operations depending on their position (global: all the nodelists; output: all the nodelist in the current output block; input: the current nodelist only). - "NoRedir" verb: the nodes that should be redirected will acquire the empty string as phone number, so that you will never call a system different from that you think you are calling. - Many new verbs have been added to support external operations; the names are self explaining: BeforeArcList AfterArcList BeforeUnArcList AfterUnArcList BeforeUnArcDiff AfterUnArcDiff BeforeArcDiff AfterArcDiff All the preceding verbs support the %a (complete archive name) and %f (add/extract file name, no path) parameters. BeforeEdit AfterEdit The preceding verbs support the %l and %d parameters standing for the full pathnames of the NodeList and NodeDiff files. BeforeCompile AfterCompile The preceding verbs support the %l parameter only. BeforeKillSource The preceding verb does not support any parameter. It is executed even if "KillSource" is not used. It is a means to invoke a command before FastLst ends. The "NeededBeforeKill" verb must be used to specify the NodeLists needed by this command. See FastLst.Doc for more information. - A new cfg section is now available: "NoCompile". It is a means for maintaining a NodeList (applying nodediffs, archiving with different archivers etc.) without compiling it. - The 3D German PointListst is now internally supported by FastLst. Just use the "GermanPointList" verb in the pertaining block. - When all goes well, FastLst exists with errorlevel 0 if it has compiled something, 100 if nothing new to compile was found. - New method for evaluating the age of a variable extension arcfile: the file date is considered in addition to the 2 digits in the extension. This way you can keep a greater number of old files without creating problems to fastlst, even at the year crossing. - File descriptions in FILES.BBS are now maintained (deleted or added). New statements are available: ArcListDesc ArcDiffDesc can contain the following parameters: %d day %a archiver %D date, USA format %L Local date - The dash is now recognized as insignificant while doing the Dial and Cost translations. - The line # is specified when reporting a config error. - Some information about the compilation can now be reported to a fido/squish message area: see FastLst.Doc for a description for "MsgLogArea", "MsgRemArea" and related statements. - FastLst is now multitasking smarter: e.g. it retries for 15s when it has to delete the old compiled nodelists and rename the new ones. - New Export capability: FastLst is now able to "export" segments of nodelist: see the "Export" section in the docs. - The Dial and Cost tables can be unified: the old syntax is still supported, but a new way can be used for cost and dial specifications. I think that Europeans can continue using the old syntax (if they like), while the Americans should appreciate the new way (due to the complex dial translations needed). - Fixed bug that caused access violations when no "StatusLog" was used. ═══ 2.2. 1.20 ═══ 1.20 - WARNING: FastLst v 1.20 is NOT a "Drop In" replacement for previous versions; you MUST modify the config file following the comments in it before using this version. - In order to make available new powerful options without using clumsy syntax and risking subtle side effects and strange interactions, some obsolete features have been dropped and the methods to specify the files to be compiled have been modified. - FastLst is faster than ever: on my system and with my configuration, the OS/2 version is about 25% faster than v 1.16. If you time it, be aware that the OS/2 version optimizes memory allocation (and speed) basing on the needs of the previous compilation, so it is usually a bit slower on the first run with a new cfg. - The ancient "Version6" nodelist support has been dropped. However the sometime-useful fidouser.lst is still available. - The "MergeList" and "Kill999" options have been dropped. With version7 you can simply compile segments after the full list, since updated entries are put in the indexes in the place of old ones. - Added support for compiling multiple V7 nodelists with different output names. - Added support for automatic decompression of nodelists and nodediffs: no more complex batch files. - Now FastLst compiles an output nodelist only if some of its input lists are new: the -f command line switch has been added to force compilation. - Pay Attention: version 1.14 introduced a new behaviour in generating V7 indexes to circumvent a bug in Binkley 2.50 V7 search function. Now Binkley 2.58 should have fixed the bug, so FastLst goes back to the "correct" V7 index. A new cfg option has been added to keep using the "bug-circumvent" index form: see "V7BugFix" in the example config file. ******************************************************* * If you are using an older Binkley or some program * * that have got inspiration from Binkley 2.50 sources,* * you could experience "address not found" problems, * * unless you explicitly activate the "V7BugFix" * * option in fastlst.cfg. * ******************************************************* - The "KillOld" and "AutoErase" verbs have been dropped. Old nodelist and nodediff files are always erased. You can control how many archived files are to be kept via the new archive processing verbs. - The -o -s -l -g -m -p -b command line switches have been dropped since they are now useless. - The "include" cfg keyword and the -i command line switch have been dropped. You can still include lists of passwords in a separate file via the "PasswordFile" cfg keyword, that allows to optionally omit the "Password" keyword in front of each password specification. - Due to the frequent misunderstanding of the real meaning and function of the "Address" config option, I have decided to drop it. These days it is not much useful (in a nodelist compiler), since many systems have various different addresses and we are used to write addresses in the full 4D format to avoid ambiguities. In the various config options that require an address or a part of it, you now need to specify all the required fields, always starting with the zone number: no assumption is made on your zone/net/node. - The obsolete "MaxBaud" and "Baud" verb have been dropped. Should you use an old 2400 non error-correcting modem that needs equal DTE and DCE rates, make sure your front-end is configured to dial using its own max baud rate instead of the baud rate reported by the nodelist for the callee (AutoBaud in Binkley.cfg). - The "Country" and "UCost" verbs have been dropped, the "Dial" and "Cost" tables have been slightly modified to specify domestic and international defaults in a more coherent manner and to include "UCost" info. - The "TypeExact" verb has been substituted by the complementary "BitType" option. Thus the default is now the "Exact Type" used by Binkley 2.55 and newer. - The "TypeCost" verb has been dropped. It was used to differentiate CallCost basing on modem type. This way, in a multi-line environment, you could make each line call the appropriate modem types. To achieve the same goal, please use the front-end dial string selection options (ModemTrans in Binkley). - The totally useless "Name" and "Comments" options have been dropped. - The "Gated" config option has been dropped and the "GateAddr", "GateCoord" verbs have been replaced by "IncAddr", "ExcAddr", "IncCoord". - The "Interlist" config option has been dropped. It is substituted by the "IncSysOp" verb. - The "Type" and "CM" keywords have been dropped. Their functions are more cleanly implemented via the "NodeFlags" verb. - The "TypeDef" statement has been modified to a "table" form, for better coherency. - The addresses in Fidouser.Lst now always have the heading zone number, even if it is the same as yours. - Fixed little bug that could cause some cfg keywords not to be recognized unless followed by a comment ═══ 2.3. 1.16 ═══ 1.16 - Fixed bug in the Register routine that caused some keys not to work (1 every 256). ═══ 2.4. 1.15 ═══ 1.15 - Some programs skip the first entry in V6 nodelist, assuming it is a dummy entry that contains the version number of the nodelist. These programs could loose the "zone number" of the first zone compiled, thus assuming zone 0. Now FastLst puts the "version ID" entry at the start of nodelist V6. ═══ 2.5. 1.14 ═══ 1.14 - Some programs do not correctly read V7 indexes when an empty node appears (This happens when a key has no greater keys in the lower index level, so that it points to an empty node). Sometimes these programs could not find part of the V7 nodelist entries. Now FastLst adds a dummy duplicate key to avoid the problem. - New "Node,
,..." keyword to allow straightforwad addition of nodes without the need for Zone and Host lines. - Removed the Point flag in the output nodelist for point 0 entries (after the "Boss,..." keyword). ═══ 2.6. 1.13 ═══ 1.13 - When a totally empty line was found in a nodelist file a strange undesired nodelist entry was compiled. It was not a bug since FTS-0005 does not allow empty nodelist lines, however it has been fixed to avoid problems with private manually written nodelist segments. - The .DOC now reports an "undocumented" feature: when using the "Boss,
" method for pointlists, you can also use the point #0 to easily add the Boss entry, if useful. ═══ 2.7. 1.12 ═══ 1.12 - In the case of SysOps of multiple nodes, all the Name/Address couples are now put in the SysOp lists (fidouser.lst and sysop.ndx). This new behaviour allows to use the great "address choice" feature of TimEd (excellent Dos/OS2 message editor by Gerard van Essen 2:281/527). - New behaviour of "SysDup" option: since now all the name-duplicate sysop entries are kept by default, SysDup allows to keep (for a particular sysop name) only the entry with one of the specified addresses. - Many internal changes, not visible to users: if you find out a new unexpected behaviour, please let me know. - Removed redundant empty lines in nodelist.prn and nodelist.txt after comment lines. ═══ 2.8. 1.11 ═══ 1.11 - CRC is now checked on all nodelist files that have the expected CRC on the first line (previously it was checked when applying nodediffs only). - New errorlevel 10 for CRC Error while compiling nodelist (errorlevel 9 is still used for CRC Error while applying nodediff). - When merging the first line is skipped if it contains the CRC. - New -r command line switch to avoid exit on CRC Error. - New -s command line switch to override SYSOP.NDX base name. - Any file specification can contain drive and path, including -n -d -o -s overrides. - When using Version7 only, the added nodelist segments are appended to the end of the full main nodelist instead of the end of your zone. - Some small changes in Nodelist.Prn and Nodelist.Txt - Fixed bug introduced in v 1.10: when a region segment (no zone entry) was compiled as the main nodelist, zone 0 was erroneously assumed. Now the address levels not present in the main nodelist correctly default to the config address. ═══ 2.9. 1.10 ═══ 1.10 - OS/2: First 32 bit version, compiled by BC++. - OS/2: New "flat" index sorting (no more disk based merge-sort). - OS/2: "TmpPath" option in *.cfg not used any more. - OS/2: Long filename support - DOS: The "TmpPath" directory is now automatically created when necessary. - New improved Disk Full handling (errorlevel 4) - New "-o" command line switch to override output file names (NODEX.* -> .*). - New "KillAfter" config verb, to save old nodelist files in the case of compilation error. - New "Boss
" statement for easier pointlist support (see FastLst.DOC). - New optional partial address parameter in "MyList [default partial address]" to allow the addition of nodelist segments without the need of ZONE, HOST, node prefix lines (V7 only). See FastLst.DOC for more details. - New "-i" command line switch to allow easier different file inclusions. - New "KillOld" config statement to kill old versions of nodelist files. - New "Kill999" config statement to kill the .999 file that remains after merging with MergeList. - Now the .999 file is killed whenever FastLst begins execution, thus you do not have to manually delete it if you stop using the MergeList command. - Now the "Gated" config keyword prevents Hub coordinators of other zones to be put in the output nodelist (only ZC and NC remain). - New "GateAddr" config keyword allows to have only selected zones, regions and nets in the output files. - New "GateCoord" config keyword allows to have in the output files only selected coordinators from the excluded zones, regions and nets. - New errorlevel 9 exit after CRC error while applying a nodediff. If "Autoerase" is active, the nodediff and the resulting nodelist files are erased, otherwise they are renamed to NODEDIFF.BAD and NODELIST.BAD. - New "StatusLog" config statement to specify the log filename in the .cfg instead of the command line. - New "TypeExact" config option to set modem types in a way more coherent with the behaviour of Binkley 2.55 and newer. - New "SysDup" config option to override FastLst's choice when killing duplicate SysOp Names. ═══ 2.10. 1.06 ═══ 1.06 - OS/2: Fixed bug that caused some reg. keys not to work. - DOS: Fixed bug that sometimes caused memory problems during index sorting. ═══ 2.11. 1.05 ═══ 1.05 - New UCOST verbs to set User Cost Different from Call Cost. - OS/2: Fixed bug that sometimes caused "Disk Full" error. ═══ 2.12. 1.04 ═══ 1.04 - Changed redirection criteria: if you have a password with a hold/unpublished system or its coordinator, then it is NOT redirected; instead it gets an empty phone number string. - Slightly changed the algorithm to choose the entry for a multi-SysOp in Sysop.Ndx, so that he never gets data from an entry that is not used due to local segment override. - Added "Flags" Keyword to set the user defined bits. - OS/2: Fixed a bug that caused a "NULL POINTER" error when compiling only Version 6 and FidoUserLst. ═══ 2.13. 1.03 ═══ 1.03 - Added before comment output to fix video output when both comments and report are active, Thanks to Roberto Zanasi. - OS/2: First (16 bit) version, ported by Pasquale Cantiello. ═══ 2.14. 1.02 ═══ 1.02 - Null pointer bug fixed in Merge module, Thanks to Pasquale Cantiello. ═══ 2.15. 1.01 ═══ 1.01 - Minor message and DOC adjusting. ═══ 2.16. 1.00 ═══ 1.00 - First public release. ═══ 3. About FastLst ═══ ************************************************************** * * * * * ******* ** **** ****** **** **** ****** * * ** * **** ** ** * ** * ** ** ** * ** * * * ** * ** ** ** ** ** ** ** * * **** ** ** **** ** ** **** ** * * ** * ****** ** ** ** * ** ** * * ** ** ** ** ** ** ** ** ** ** ** * * **** ** ** **** **** ******* **** **** * * * * * * Version 1.30 * * * * The ultimate V7 nodelist processor * * * * * ************************************************************** * * * (C) Copyright 1992-1995 by Alberto Pasquale * * * * A L L R I G H T S R E S E R V E D * * * ************************************************************** FastLst 1.30 User's Manual, by Alberto Pasquale ═══ 4. Introduction ═══ INTRODUCTION -> For licensing information, please see License.Doc. Thanks for evaluating FastLst: the ultimate "Version 7" nodelist processor. Version 7 is a common format for binary nodelists to be used by mailers, message editors and all the programs that need access to a compiled nodelist. Main characteristics: - Compiles to Version 7 format nodelist. - Support for old "Fidouser.Lst" sysop list. - Multiple output nodelist (V7) compilation from one config file. - The complete maintenance of archived lists and diffs is achieved through internal flexible configuration, with no need for clumsy batch files. - Uses "Squish(*) Style" Compress.Cfg. - Can be invoked from a batch file at predefined events: the compilation will take place only if some new list/diff is found. - The 32 bit versions can use "in memory" mode to accomplish blazing speed on systems with enough memory or "temporary file" mode to avoid very slow operations in compiling large nodelists on systems with little physical memory. - Multitasking friendly - The OS/2 32 bit version allows for priority setting in the configuration file. - Compilation reports can be posted to Fido or Squish format message areas. - Full 4D (point) support, both via the "Point,..." and "Boss,..." keywords. - Internal support for "German type" pointlists. - Easy addition of nodes via the "Node,
,..." keyword in a private list. - In the case of SysOps of multiple nodes, keeps in the sysop lists (fidouser.lst and sysop.ndx) all the name/address entries. Allows to keep one address only for specified ones. - User Cost (Msg Fee) can be set different from Call Cost. (*) This program uses the Squish "MsgAPI" code, Copyright 1991-1994 by SCI Communications. "Squish" and Maximus are trademarks of SCI Communications. (**) Binkley is Copyright 1988-1994 Bit Bucket Software (***) 4OS2 is Copyright 1988-1994 JP Software Inc. The archivers referred to throuhgout this documentation and the accompanying files are Copyright and/or trademarks of the respective owners. ═══ 5. Overall Operation ═══ OVERALL OPERATION FastLst has been designed to be invoked regularly from one of your main batch files, after mail has been received or at pre-arranged times at your pleasure: if any new (compressed or not) nodelist/nodediff is detected, Fastlst processes them as required (exiting with Errorlevel 0), otherwise it immediately exits (errorlevel 100) with no further delay. When FastLst detects a changed config or password file, it compiles all the affected nodelists even if they are not new. If you want FastLst to compile all of your nodelists even if no new ones are present, you need to use the -f or -i command line switch. For each "output block" in the config file: - New compressed lists or diffs are detected, unarchived and optionally rearchived in a different format. - New diffs are detected and applied: the resulting new nodelist is archived. - New lists are detected and the pertinent output nodelists are rebuilt. If no new list is found for a specific "output block", that output nodelist is not compiled, unless the -f or -i command line switch is specified. OS commands can be issued before or after every operation: for example you can hatch the just created archive file. ATTENTION: - Every time the config file is changed, FastLst rebuilds all the output nodelists, as if the -f command line switch were specified. - Every time a PasswordFile is changed, FastLst rebuilds the nodelists that use it. ═══ 6. Input Nodelist Format ═══ INPUT NODELIST FORMAT The source nodelists and nodediffs must be in standard "St. Louis" format, as described in FTS-0005. Anyway, FastLst allows some extensions in order to support 4D points, "German style" pointlists and easy single node specifications. ═══ 6.1. 4D Point Support: POINT and BOSS Keywords ═══ 4D Point Support: POINT and BOSS keywords the input nodelist format in order to support true "4D" points. First method: Points are entered in the nodelist directly following their bossnode. Each one starts with the "Point," keyword. Example: ... ... ,504,Videl_3,Modena_I,Roberto_Zanasi,39-59-450600,9600,CM,XA,V32B,V42B Point,1,Pasquale,Modena_I,Alberto_Pasquale,-!Unpublished-,9600, Point,2,SysOp,Modena_I,Roberto_Zanasi,-!Unpublished-,2400, Point,3,Carta,Modena,Francesco_Carta,-!Unpublished-,2400, ... ... Second method: Points are entered in the nodelist following the "Boss,
" keyword. Example: ... ... Boss,2:332/504 ,1,Pasquale,Modena_I,Alberto_Pasquale,-!Unpublished-,9600, ,2,SysOp,Modena_I,Roberto_Zanasi,-!Unpublished-,2400, ,3,Carta,Modena,Francesco_Carta,-!Unpublished-,2400, ... ... ═══ 6.2. German Point List ═══ German Point List This is a "normal" 3D nodelist that lists each Boss as a "fakenet" HOST, with the real address as the system name, followed by its points listed as nodes. Example: The following nodelist segment lists points 2:2400/1.1 .2 .3: Host,20000,2400/1,City,Sysop_Name,49-951-999999,9600,CM,V34 ,1,System_Name_1,City_1,Sysop_Name_1,49-951-999999,9600, ,2,System_Name_2,City_2,Sysop_Name_2,49-951-999999,9600, ,3,System_Name_3,City_3,Sysop_Name_3,49-951-999999,9600, ═══ 6.3. The NODE Keyword ═══ The NODE Keyword Another extension over FTS-0005 is provided to allow easy addition of nodes in small private lists. When you need to add a node to your nodelist to call it or to enforce a session password with it, you can use the "Node,
,..." keyword to avoid the necessity of adding its Zone and Host coordinators. You should specify a full 4D address (point optional). Any subsequent entry will take the current address as a starting point. E.g.: You want to add 9:8/7.3 With "Node,...": ... ... Node,9:8/7.3,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM ... ... With "Boss,...": ... ... Boss,9:8/7 ,3,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM ... ... With the traditional method: ... ... Zone,9,... Host,8,... ,7,... Point,3,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM ... ... Now let's add 8:7/6 and 8:7/7: With "Node,...": ... ... Node,8:7/6,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM ,7,Duck,DisneyLand,Donald_Duck,1-800-112,9600,CM ... ... With the traditional method: ... ... Zone,8,... Host,7,... ,6,Mickey,DisneyLand,Mickey_Mouse,1-800-111,9600,CM ,7,Duck,DisneyLand,Donald_Duck,1-800-112,9600,CM ... ... ═══ 7. Miscellaneous Info ═══ MISCELLANEOUS INFO ═══ 7.1. Multiple Sysops ═══ Multiple Sysops In the case of SysOps of more than one system, all the name/address couples are put in the SysOp Name Lists (Fidouser.lst and Sysop.ndx). If you want to keep one only name/address couple for some multiple SysOps, you can use the "SysDup " option in the config file: the SysOps who have one of the listed addresses will be present in the SysOp lists with that entry only, even if they have other addresses. Example: Let's suppose that Robert Everywhere has 4 nodes: EveryWhere, Robert 1:456/987.0 EveryWhere, Robert 2:123/457.0 EveryWhere, Robert 2:123/457.8 EveryWhere, Robert 6:321/567.0 By default all the 4 addresses are available in the sysop lists (and some programs allow to choose among them, e.g. the excellent TimEd message editor by Gerard van Essen). If you prefer to keep one address only, you can specify the desired address in a SysDup line in the config file: e.g. "SysDup 2:123/457.8". ═══ 7.2. Redirected Systems ═══ Redirected Systems Systems that have no valid phone number (Unpublished, on Hold), are redirected, provided you do not exclude redirection using the "NoRedir" config keyword. A redirected system is given the phone number, baud rate, modem type, cost and flags of the preceding coordinator, the Board name is prepended with '-R-'. If you have a session password with the system to be redirected or with the system it should be redirected to, no redirection is done in order to prevent password-mismatch errors in the case the Unpublished/Hold system calls you. Points are never redirected. The systems that have no valid phone number and cannot be redirected take an EMPTY phone number string, so that your mailer does not send unexpected strings to your modem attempting to call these systems, should something appear in your outbound addressed to them. Pay attention: if you want to directly call these null_phone-systems or their coordinators, you have to give them a phone number using the "Phone " statement in the configuration file. ═══ 8. Installation ═══ INSTALLATION 1) There are 4 versions of FastLst: FASTLST.EXE OS/2 32 bit FASTL16.EXE OS/2 16 bit FASTLDOS.EXE DOS 32 bit, with DOS4GW DOS Extender FASTLD16.EXE DOS 16 bit The OS/2 and Dos versions are distributed in separate archives (see Readme.1st). OS/2 32 bit: to be used with OS/2 2.0 and above. You have only to decide whether to use the "FileMode" statement in the configuration file. If you have enough physical memory available you should use the default "in memory" mode. On the other hand, if the execution of FastLst is excessively slow, you probably are low on memory and you could benefit by the use of the temporary file. You can use the "-t" command line switch to experiment, before enabling the "FileMode" statement in the configuration file, if really necessary. OS/2 16 bit: to be used with OS/2 1.3. DOS 32 bit: to be used with Dos on a 386sx or better with free extended memory. If you have enough free extended memory, you can use the default and fast "in memory" mode (4MB allow the compilation of approximately 64,000 nodes). If you do not have enough free memory, you can use the "temporary file" mode, provided you have 800KB of free extended memory (see the "-t" command line switch and the "FileMode" configuration statement). If you have no free extended memory at all, you have to use the 16 bit version. DOS 16 bit: to be used with Dos on 8088 or better. The only requirement is 530KB (or better 600KB) of free conventional memory. If you can't free enough conventional memory, you must use a 386sx or better with at least 800KB of free extended memory and use the 32 bit version, which has less stringent conventional memory requirements. 2) Write your FastLst.Cfg. You can find useful examples in the Fast_*.Cfg files and detailed information in the "CFG REFERENCE" section of this documentation. 3) Edit your batch file in order to call FastLst whenever you would like to test for the presence of new list/diff files and process them. If you do not pass a different pathname as a command line parameter, FastLst.Cfg must reside in the current directory. 4) (OS/2): Make sure you have the MSGAPI32.DLL (32 bit version) or MSGAPI.DLL (16 bit version) in a directory contained in your LIBPATH. MSGAPI32.DLL and MSGAPI.DLL can be found in the Squish 1.11 archive. If you have little memory and FastLst runs excessively slow, try using the "temporary file" mode (see the "-t" command line switch and the "FileMode" configuration statement). (DOS32): Make sure you have the DOS4GW.EXE Dos extender (from Rational System Inc.) in your path. The DOS4GW extender requires an XMS or DPMI memory driver installed in your config.sys: e.g. HIMEM.SYS, QEMM (by QuarterDeck Office Systems Inc.). FastLst requires lots of memory to compile long nodelists: you must make sure that the Dos extender can make it available to FastLst. If you need more memory than you physically have, you must use the "temporary file" mode (see the "-t" command line switch and the "FileMode" configuration statement). You could also use the "in memory" mode and activate the DOS4GW virtual memory mode, but it is not recommended since it could unacceptably slow down the compilation process. Anyway, if you really want to test it on your own, the virtual mode is activated using the DOS4GVM environment variable (e.g. for 16MB virtual allocation size: SET DOS4GVM=VirtualSize#16384). (DOS16): Make sure you have at least 530KB of free (conventional) memory. You should use small message buffers (MsgSize statement) in order to avoid out of memory conditions during the merge-sort process. (DOS): Please note that FastLst tells you (on screen, in the logs, in the report message) how much memory remains after compilation, so that you can realize when you are running in marginal conditions and consequently adjust your configuration before you run out of memory. During the merge-sort process (16 bit and 32 bit in "temporary file" mode) FastLst automatically uses the maximum number of ways (up to 8) allowed by the available memory. The minimum number of ways is obviously 2. So, if FastLst reports a "2 Way Merging", you know that the final "MemFree " is the actual margin for the "out of memory" error. On the other hand, if FastLst reports "3 Way Merging" or more, you know that there is an additional margin for the "out of memory", approximately 60KB for each way above the minimum of 2. ═══ 9. Command Line Switches ═══ COMMAND LINE SWITCHES -c Use configuration file instead of FASTLST.CFG. -f Force compilation even if no new list/diff has been detected. -i Ignore FastLst.Dat: run as if it were the first time. All nodelists compiled, all exports executed. -p Prepare: Unarc new lists and diffs, Apply diffs and Arc new nodelists, do not compile nodelists. -r When applying a diff, FastLst usually deletes the newly generated source nodelist file if a CRC error is detected. With this switch the new nodelist is _not_ deleted, so that it will be processed anyway. When compiling a list, FastLst usually aborts the compilation of the current output nodelist if a CRC error is detected. With this switch the current output nodelist will be entirely compiled anyway. -t Toggles between "temporary file" mode and "in memory" mode. If "FileMode" is enabled in the configuration file, it switches to "in memory" mode and vice versa. -h or -? for help ═══ 10. Errorlevels ═══ ERRORLEVELS 0 - Normal termination, something compiled 1 - Help requested 2 - File Open error 3 - Abnormal termination 4 - Disk Full 5 - Can't find config file 6 - Configuration error 7 - Out of memory 8 - Read error while applying diff 9 - CRC error (applying diff) 10 - CRC error (compiling list) 11 - User Break 12 - Cannot rename temporary output nodelist files 13 - Cannot open source nodelist file 15 - Too many nodelists in inbound directories 100 - Normal termination, nothing compiled 250 - MsgApi: Init Error 251 - MsgApi: Area Open Error 252 - MsgApi: Area Lock Error 253 - MsgApi: Area Close Error ═══ 11. Configuration ═══ CONFIGURATION Before analyzing the cfg keywords in detail, let's introduce the overall mechanism that is at the basis of FastLst's configuration. If you are converting from a different nodelist compiler, please forget the old configuration and start from scratch. FastLst.Cfg is divided into several logical blocks and the sequence of the various statements is essential: you cannot just put keywords somewhere in the config file; they must be arranged in the correct order. At first, this characteristic of FastLst's configuration could appear complex to understand, but, as soon as you will grasp its logic, you will understand that it's really easy to write a correct configuration file and you will appreciate its extraordinary flexibility. The first block of configuration is the "Global" one. The verbs in this block refer to the compilation of all the nodelists. Then there are one or more "Output Blocks": each output block refers to the compilation of a single V7 nodelist (e.g. NODEX.*). Each "Output Block" has a "Output section" (with statements regarding the compilation of the whole V7 list) and one or more "Input blocks" containing the verbs that describe how to compile each of the source nodelists. The first "Output Block" can optionally be of a special kind: a "NoCompile" block, whose "Input Blocks" describe nodelists that must be maintained (e.g. diffs applied) but not compiled to any V7 list. Some statements can be used in blocks of a particular type only, others can be used in many different places depending on what nodelists you want to be affected. As a rule of thumb, you can use each statement anywhere it seems to be logically acceptable. If you feel frightened by such abstract considerations, please take a look at the example Fast*.Cfg files, so that you can quickly realize it's not that difficult. To write your own configuration file you should start modifying the example one that is more adequate to your needs. Now, let's consider all the verbs that are allowed in FastLst's configuration. ═══ 12. Cfg Reference ═══ CFG REFERENCE - Items between square brackets (e.g. []) are optional. - The names of the various Keywords are NOT case sensitive. - When a directory path is required, the trailing backslash '\' is optional. - The ';' character starts comments: any character following the ';' is ignored, unless inside quoted strings. - The maximum length of configuration lines is 254 characters, so don't go further (you can always split address lists into smaller ones). - In the OS/2 version, any file specification can be a legal OS/2 name, between double quotes if necessary. Please, note that the order of the configuration statements follows some logical rule. In order not to create confusion in the .cfg file and not to break some _necessary_ order relation, please follow the scheme proposed in the example Fast*.CFG files and in this reference documentation. Please, be aware that the generation of text files (FidoTxt, FidoPrn, FidoUserLst verbs) and the use of lots of options and overrides can slow down the compilation process: use only the options/overrides that you really need if you mind compilation time. ═══ 12.1. Global ═══ G L O B A L The following verbs can be used in the Global section of FastLst.cfg. Some of them can be used in other places also, so they are divided into separate sections. ═══ 12.1.1. Section A ═══ G L O B A L Section A The following configuration verbs can be used in the GLOBAL section of FastLst.Cfg. ═══ 12.1.1.1. RegKey ═══ RegKey Registered Users only: is the registration key and it is NOT case sensitive. Example: RegKey dfhyuwru6274623 ═══ 12.1.1.2. Priority ═══ Priority [] Changes the execution priority of the FastLst process (OS/2 32 bit only). Ignored by OS/2 16 bit and DOS versions. is one of: Idle Regular High is an integer in the range 0...31 and defaults to 0. If you do not use this statement, FastLst will run at the default priority, which normally is "Regular 0". Examples: Priority High 31 Gives Fastlst the highest priority for "non time-critical" processes. It will run fast even if it is in the background and other processes are active. Priority Idle Gives FastLst the lowest priority, so that it loads the system as minimally as possible. It will run significantly slower, especially if in the background or when other CPU intensive processes are in execution. ═══ 12.1.1.3. FileMode ═══ FileMode Enables the temporary file mode (32 bit only). Ignored by the 16 bit versions. Makes Fastlst use temporary files, so that the memory requirements remain low and independent of the size of the compiled nodelists. If you do not use this statement, FastLst (32 bit) uses memory for storing the data it needs for building the V7 indexes. If you have not enough free memory, the DOS 32 version will return an "out of memory" error while the OS/2 32 one will run slowly. ═══ 12.1.1.4. StatusLog ═══ StatusLog is the name of the file where all the operations performed by FastLst will be logged, following the "Binkley(**) Style". In multitasking environments, please be sure to use a file that cannot be used by other processes at the same time. For example: if (in your system) FastLst can be executed while Binkley is running, please use different log files. Should you not want the log file, you can comment this keyword out. Example: StatusLog d:\bbs\log\FastLst.log ═══ 12.1.1.5. CompressCfg ═══ CompressCfg This is a "Squish style" compress definition file. In the case you are using a case-sensitive de/compression program (e.g. OS/2 ZIP/UNZIP), please make sure to use the correct switches in and/or the correct case (Lower/Upper) in and specifications. You can find the suggested in the example Compress.Cfg file included in the FastLst pack. If you are already using Squish and or Maximus (*), you can just specify the name of their compress.cfg (but do check that they indicate the necessary switches to avoid case sensitiveness during extraction). Refer to the "Compress Definition File" section at the end of this document for the syntax of . ═══ 12.1.1.6. TmpPath ═══ TmpPath Specifies a directory to be used for temporary files. If TmpPath is not used, FastLst will use the path specified in the TEMP or TMP environment variables or (if they are not defined) the current directory. FastLst will not damage any file already present in the temporary directory. The 16 bit versions always use temporary files, while the 32 bit ones work in memory unless the "FileMode" statement or -t command line switch are used. ═══ 12.1.1.7. InputPath ═══ InputPath Specifies the default path for input files (source nodelists/nodediffs). You can override it by using a full pathname in input-file specifications. Created if not existing. Example: InputPath d:\bbs\nodelist\ ═══ 12.1.1.8. ArcPath ═══ ArcPath Specifies the default path for Archived nodelist files. It usually points to the file area where your TIC processor moves the inbound nodelist archives. You can override it by using a full pathname in Archived-file specifications. Example: ArcPath d:\bbs\file\nodelist\ ═══ 12.1.1.9. KillAfter ═══ KillAfter Old V7 files are killed after the new ones have been successfully written. The new V7 files are written to temporary names, then the old ones are killed and the new ones renamed (and FastLst retries for 15s in case of error, to be multitasking smart). Thus you will always have a valid V7 nodelist, even in the case of a compilation error and consequent compile abortion. Besides, your multitasking system can continue operations while FastLst is working. On the other hand you could need some more spare disk space to hold the old and new files during compilation. ═══ 12.1.1.10. KillSource ═══ KillSource Tells FastLst to kill all uncompressed nodelists (that are also available in archived format) before terminating. Please note that FastLst deletes a source nodelist only if the ArcList statement is defined. Besides, when the NodeDiff statement is used, an ArcMethod must be defined to allow the deletion of the nodelist. When no NodeDiff is defined, FastLst assumes that the uncompressed NodeList has been extracted from a corresponding archive. ═══ 12.1.1.11. BeforeKillSource ═══ BeforeKillSource This statement is used to invoke a command of your choice before the source nodelists are killed, upon FastLst completion. is executed even if "KillSource" is not used. It is a means of invoking a command before FastLst ends. The "NeededBeforeKill" verb must be used to specify the NodeLists needed by this command: if one of these nodelists is found new, then this command is invoked after decompressing all the nodelists that have the "NeededBeforeKill" attribute (and have not been decompressed yet). IMPORTANT: is executed ONLY if some nodelist affected by a "NeededBeforeKill" verb has been detected as new. can be any command that is valid for the command interpreter specified in your COMSPEC environment variable. If invokes an executable file, it is loaded and executed directly; otherwise your command interpreter is invoked, so that you can execute a batch file or any other valid command. No variable parameters are supported. ═══ 12.1.1.12. Dash2Comma ═══ Dash2Comma Change dashes to commas in the phone numbers. Useful for people that are still connected to ancient "rotary pulse" electromechanic telephone exchanges. ═══ 12.1.1.13. NoDash ═══ NoDash Remove dashes from the phone numbers. ═══ 12.1.1.14. NoReport ═══ NoReport Do not output nodelist statistics ═══ 12.1.1.15. NoRedir ═══ NoRedir Nodes that do not have a valid phone number (Hold, Unpublished) are usually redirected to their coordinators. When this verb is used, redirection does not take place and the node is given an empty phone number, so that you never call a system different from that you think you are calling. Please note that (even with no NoRedir verb): - points are never redirected; - if you have a password with a system or its coordinator, this node will never be redirected. ═══ 12.1.1.16. V7BugFix ═══ V7BugFix Circumvents a bug with V7 nodelist in Binkley 2.50 (and perhaps in many other programs whose V7 search function was inspired by Binkley's sources) that can sometimes hide segments of V7 nodelist. If you are unsure, keep this keyword active. ═══ 12.1.1.17. MsgLogArea ═══ MsgLogArea [-$] Some information about the compilation can be reported to a fido or squish message area. indicates a message area for reporting compilation logs. -$ specifies that the area is in Squish format; otherwise it is assumed to be *.MSG. The "MsgLog" statement (see Global Section C) can be used to add some information that is not reported by default. Examples: MsgLogArea \bbs\mail\net -$ MsgLogArea \bbs\mail\net\ ═══ 12.1.1.18. MsgRemArea ═══ MsgRemArea [-$] The comments found in the compiled nodelists can be selectively reported to a fido or squish message area. indicates a message area for reporting compilation logs. -$ specifies that the area is in Squish format; otherwise it is assumed to be *.MSG. The "MsgRem" statement (see Global Section C) MUST be used to specify which types of comments you want to be reported. Please note that no comments are reported if no "MsgRem" statement is used. Examples: MsgRemArea \bbs\mail\net -$ MsgRemArea \bbs\mail\net\ ═══ 12.1.1.19. MsgFromNode/MsgToNode ═══ MsgFromNode
MsgToNode
Specify the addresses for the created messages.
is a 4D address. Example: MsgFromNode 2:332/504 MsgToNode 2:332/504.1 ═══ 12.1.1.20. MsgTo ═══ MsgTo Specifies the name of the addressee of the created messages. Example: MsgTo Alberto Pasquale ═══ 12.1.1.21. MsgAttr ═══ MsgAttr Specifies the attributes for the created messages. can be a (not case sensitive) combination of: P : Private K : Kill/Sent C : Crash H : Hold D : Direct (crash + hold in squish messages) Examples: MsgAttr P MsgAttr pk ═══ 12.1.1.22. MsgSize ═══ MsgSize Specifies the maximum size of a single message: after this length, the message is split. Defaults to 7K, greater values are recommended, so that the message is not divided into too many parts. 16 bit: maximum 65535 32 bit: no maximum (4294967295) WARNING: Dos 16 version has stringent problems of memory, so you should be happy with the 7K default. Example: MsgSize 60000 ═══ 12.1.1.23. Cost and Dial translation Tables ═══ Cost and Dial translation Tables You can specify costs and dial translations in separate tables or in a combined "Dial and Cost" table. To Europeans: you usually will prefer separate tables, since the dial translations are quite simple. This way you can keep the (very short) dial table always fixed, while adjusting the cost table to your needs. Anyway, if you do not use long cost tables, you could find the combined dial & cost table convenient. To Americans: you have quite long dial tables since you need to list all the "local exchange" codes. So you usually don't like duplicating this list for assigning the costs: you will appreciate the combined table. The custom definition for the list of local exchanges should also speed up the compilation of all the nodelist entries that are out of you Area Code. ═══ 12.1.1.23.1. Cost Table ═══ Cost Table This is the Cost Table to be used in association with a separate Dial table, that must follow. It begins with "Cost" and ends with the "End" keyword. Each entry in the cost table has the following format: [ []] is a partial phone number to be matched with the initial part of nodelist entries. The dashes are ignored. The of the last entry must be a single dash "-", to mean that all the remaining numbers will take the costs specified there. is the cost field of the compiled nodelist (0->65535). It represents the "Call Cost" for any node whose phone number begins with in the source nodelist (before dialing translations). is an optional "User Cost" (fee for a netmail message on BBS). If it is not used, it's taken equal to . If you would like your users to be able to send netmail messages from the BBS with no need for "credits", you should set to 0. is an optional list of nodelist flags (not case sensitive) to be stripped from entries of nodes whose phone number begins with . Thus you can strip some modem-type flags (V32, HST, ZYX, ...) when calling into critical areas. This parameter can only be used after . When searching for "PartPhone", the first matching entry is applied: in the case of entries with an initial part in common, you have to specify them in sequence from the longest to the shortest. If no match is possible, the last line specifies the default (thereby international) and optional and . Example 1: The following example assigns = 0 to all, = 0 to local systems, 60 to domestic and 300 to international ones. Cost 39-59 0 0 ; local 39- 60 0 ; domestic long distance - 300 0 ; international End Example 2: Now let's strip some flags from some areas. Cost 1-703 300 0 HST,H14,H16 ; strip HST 45-123 300 0 V32,V32b ; strip V32 and V32b 39-59 0 0 ; local 39- 60 0 ; long distance - 300 0 ; international End Example 3: Now let's differentiate between urban and district calls and between Continental and Intercontinental calls; call and user cost considered equal. Cost 39-59-2 5 ; urban 39-59-3 5 ; urban 39-59-4 5 ; urban 39-59-81 5 ; urban 39-59-82 5 ; urban 39-59 30 ; district 39 60 ; domestic long distance 43 100 ; Austria 32 100 ; Belgium 45 100 ; Denmark 33 100 ; France 49 100 ; Germany 44 100 ; UK 31 100 ; Netherlands 34 100 ; Spain 46 100 ; Sweden 41 100 ; Switzerland 1 200 ; USA/Canada - 300 ; others End ═══ 12.1.1.23.2. Dial Table ═══ Dial Table This table can be used either as a simple Dial Table in association with a separate preceding Cost Table or as a combined Cost/Dial Table (in which case the Cost Table must NOT exist). It begins with "Dial" and ends with the "End" keyword. Each entry has the following format: [] or [ [ []]] The first form is for the separate Dial Table, the second one is for the combined Cost/Dial Table. Two additional keywords are allowed inside the combined Dial Table: LocalValues [ [ []]] Defines the dial translation and costs for the local exchanges. LocalExchanges ... Lists all the local exchanges. Please remember that the line length is limited to 254 characters. You can use multiple "LocalExchanges ..." lines if you like short lines or need more than 254 characters. Please note that all numbers that (after stripping) begin with are considered local. For example, if 220, 221, 222, 223, 224, 225, 226, 227, 228, 229 are all local exchanges, you can indicate 22 to include them all. The use of these two statements in the place of a long list of normal table lines (one for each local exchange) should also speed up the processing of all the nodelist entries that are not in your area code. is a partial phone number to be matched with the initial part of nodelist entries. The dashes are ignored. The of the last entry must be a single dash "-", to mean that all the remaining numbers will take the parameters specified there. can be one of: a: b: / c: / d: / is stripped from numbers beginning with it, then is used to prepend/append the specified strings to the remainder. Case a: is prepended. e.g.: "39- 0" strips "39-" and adds "0" at the beginning of the number. Case b: is appended. e.g.: "39-59- /!" strips "39-59-" and adds "!" at the end of the number. Case c: is prepended and appended. e.g.: "39- 0/!" strips "39-", adds "0" at the beginning and "!" at the end. Case d: Nothing is prepended nor appended. e.g.: "/" The slash is needed to allow the correct interpretation of the subsequent fields, in the case of combined Dial/Cost table. No spaces are allowed between prefix, suffix and the separating slash. The remaining fields are used as described in the "Cost Table" section. If the field is omitted, it is taken equal to 65535. When searching for "PartPhone", the first matching entry is applied: in the case of entries with an initial part in common, you have to specify them in sequence from the longest to the shortest. If no match is possible, the last line specifies the default (thereby international) parameters. Example 1 (separate tables, European viewpoint): Dial 39-59- ; local 39- 0 ; domestic - 00 ; international End "39-59": Country and District codes are stripped for local calls. "39-" : Country code is stripped and replaced by "0" (domestic long distance code) for domestic calls. Others: "00" (International access code) is prepended. Example 2a/2b (combined tables, North American viewpoint): Since this one is a bit more complex, let's make clear some points. There are some groups of phone numbers: 1 - Local numbers. The Country Code (1) and the Area Code must be stripped. 2 - Area Code numbers. They have your same Area Code but they are long distance. As far as I know, some of you have to dial the Area Code and some do not. In any case you usually want to differentiate costs. The Country (1) and Area Codes must be stripped and replaced by the long distance access code (1) and (for some of you) the Area Code (in the latter case, the number really remains untouched). Even if the Country Code for USA/Canada (1) is numerically equal to your long distance acces code, they are conceptually quite different, and so they will be treated. 3 - Domestic numbers. USA/Canada numbers, with a leading "1", that is the international Country Code for USA and Canada. They must be left untouched, since the american long distance access code is equal to the international Country Code for North America. 4 - International numbers. These are numbers out of USA and Canada. They must be prefixed by "011", that is the international access code. And now let's see how to achieve our goal using FastLst's Dial Table. Example 2a: Let's suppose: - we are in Area Code 414 - the 414 must be stripped for LD calls - the local exchanges are 231, 232, 233, 235, 236, 424 Dial ; strip 1-414- from local numbers, do not add ; a prefix, set call and user costs to 0. LocalValues 1-414- / 0 LocalExchanges 231 232 233 235 236 424 ; Remaining "1-414-" numbers are long distance: ; strip the 414 Area Code and assign costs = 25. 1-414- 1- 25 ; Remaining "1-" numbers are Domestic Long Distance. ; Set costs to 50 1- 1- 50 ; Remaining numbers are international. ; Prepend 011 and set call cost to 250 and ; user cost to 500 - 011 250 500 End Example 2b: Let's suppose: - we are in Area Code 604 - the 604 must NOT be stripped for LD calls - the local exchanges are 220 221 222 224 228 230 231 240 241 244 250 251 252 253 254 255 257 258 261 263 264 266 Dial ; strip 1-604- from local numbers, do not add ; a prefix, set call and user costs to 0. LocalValues 1-604- / 0 LocalExchanges 220 221 222 224 228 230 231 240 LocalExchanges 241 244 250 251 252 253 254 255 LocalExchanges 257 258 261 263 264 266 ; Remaining "1-604-" numbers are long distance: ; assign costs = 25. 1-604- 1-604- 25 ; Remaining "1-" numbers are Domestic Long Distance. ; Set costs to 50 1- 1- 50 ; Remaining numbers are international. ; Prepend 011 and set call cost to 250 and ; user cost to 500 - 011 250 500 End Example 3 (combined table, European viewpoint): The following combined table is equivalent to the separate "Example 3" for the Cost Table and Example 1 for the Dial Table. Dial LocalValues 39-59- / 5 LocalExchanges 2 3 4 81 82 ; urban 39-59- / 30 ; district 39- 0 60 ; domestic long distance 43 0043 100 ; Austria 32 0032 100 ; Belgium 45 0045 100 ; Denmark 33 0033 100 ; France 49 0049 100 ; Germany 44 0044 100 ; UK 31 0031 100 ; Netherlands 34 0034 100 ; Spain 46 0046 100 ; Sweden 41 0041 100 ; Switzerland 1 001 200 ; USA/Canada - 00 300 ; others End ═══ 12.1.1.24. Modem Type Table ═══ Modem Type Table If you have a modem that does not need different dial strings for different protocol connections, you can skip this section. For Example a Zyxel modem usually needs one only dial string for any type of connection (unless you do not use "Multi-Auto" mode). Instead, if you need different dial strings, you can use the Modem_Type field in conjunction with some front-end feature that allows to specify different dial strings for different modem types ("ModemTrans" in Binkley). Each entry in the TypeDef table has the following format: is a Nodelist flag, is a number 0->255. The nodelist flags of each node are searched for . The must match completely a nodelist flag: if is V32 and the nodelist flag is V32B, it's not a match. The search is not case sensitive. If is found, the corresponding ModemType field is set to , otherwise the next is searched for. The ModemType field of the compiled nodelist will be determined by the first match only: If you define HST before V32, a node with both V32 and HST will have a HST modem type. The following examples are valid for Binkley's new "exact match" modemtrans style only (for use of old bitwise style, see below). Example 1: for USR Courier Dual Standard V.Everything: TypeDef V34 1 ; first choice VFC 2 V32T 3 H16 4 V32B 5 ZYX 5 ; ZYX implies V32B Z19 5 Z16 5 H14 6 V32 7 HST 8 End In Binkley.Cfg you can use: ModemTrans 0 ATB0D/ ; default ModemTrans 1 ATB0D/ ; V34 ModemTrans 2 ATB0D/ ; VFC ModemTrans 3 ATB0D/ ; V32T ModemTrans 4 ATB1D/ ; H16 ModemTrans 5 ATB0D/ ; V32B, ZYX ModemTrans 6 ATB1D/ ; H14 ModemTrans 7 ATB0D/ ; V32 ModemTrans 8 ATB1D/ ; HST Example 2: for 2 lines, ISDN and USR DS V.Everything: The UISDNA, UISDNB, UISDNC entries are required only until the incorrect ",UISDNA," type entries are changed to the correct ",U,ISDNA," style or the ISDN flags become standard flags (not user defined as they currently are). TypeDef ISDNC 1 UISDNC 1 ISDNB 2 UISDNB 2 ISDNA 3 UISDNA 3 V34 4 VFC 5 V32T 6 H16 7 V32B 8 ZYX 8 ; ZYX implies V32B Z19 8 Z16 8 H14 9 V32 10 HST 11 End In Binkley.Cfg, ISDN line, you can use: ModemTrans 0 ; don't dial (2400) ModemTrans 1 ; ISDNC ModemTrans 2 ; ISDNB ModemTrans 3 ; ISDNA ModemTrans 4 ; don't dial (V34) ModemTrans 5 ; don't dial (VFC) ModemTrans 6 ; don't dial (V32T) ModemTrans 7 ; don't dial (H16) ModemTrans 8 ; don't dial (V32B,ZYX) ModemTrans 9 ; don't dial (H14) ModemTrans 10 ; don't dial (V32) ModemTrans 11 ; don't dial (HST) In Binkley.Cfg, USR line, you can use: ModemTrans 0 ATB0D/ ; default (2400) ModemTrans 1 ; don't dial (ISDNC) ModemTrans 2 ; don't dial (ISDNB) ModemTrans 3 ; don't dial (ISDNA) ModemTrans 4 ATB0D/ ; V34 ModemTrans 5 ATB0D/ ; VFC ModemTrans 6 ATB0D/ ; V32T ModemTrans 7 ATB1D/ ; H16 ModemTrans 8 ATB0D/ ; V32B, ZYX ModemTrans 9 ATB1D/ ; H14 ModemTrans 10 ATB0D/ ; V32 ModemTrans 11 ATB1D/ ; HST Example 3: for 2 lines, ISDN and analog, when you want both lines enabled to dial systems that have both ISDN and analog access. You usually should not want such a behaviour (why calling a ISDN system the analog way ?); however, if you really know what you are doing, here is a viable trick. You have to use the "BitType" mode (see below): BitType Typedef ISDNA 1 ISDNB 1 ISDNC 1 V34 2 VFC 2 V32T 2 V32B 2 V32 2 End In Binkley.Cfg, ISDN line, you can use: ModemTrans 0 ; don't dial (2400) ModemTrans 1 ; ISDN only ModemTrans 2 ; don't dial (analog only) ModemTrans 3 ; ISDN + analog In Binkley.Cfg, analog line, you can use: ModemTrans 0 ATDT ; 2400 ModemTrans 1 ; don't dial (ISDN only) ModemTrans 2 ATDT ; analog only ModemTrans 3 ATDT ; analog + ISDN For compatibility with old Binkleys and derived systems, the following statement is provided: BitType If you need old-style bit-oriented modem type, you must enable this verb. In this case the "TypeDef" works differently: - should be a power of 2 (1, 2, 4, 8, 16, 32, 64, 128). - The ModemType will be determined by ORing all the s corresponding to s that found a match in the nodelist flags. - The dial string used by your front-end will be determined by the order of their specifications (the first ModemTrans that has some bit in common with the modem type will be used). Example for USR Courier Dual Standard V.Everything: BitType TypeDef V34 1 ; first choice VFC 2 V32T 4 H16 8 V32B 16 ZYX 16 ; ZYX implies V32B Z19 16 Z16 16 H14 32 V32 64 HST 128 End In Binkley.Cfg you can use: ModemTrans 0 ATB0D/ ; default ModemTrans 1 ATB0D/ ; V34 ModemTrans 2 ATB0D/ ; VFC ModemTrans 4 ATB0D/ ; V32T ModemTrans 8 ATB1D/ ; H16 ModemTrans 16 ATB0D/ ; V32B, ZYX ModemTrans 32 ATB1D/ ; H14 ModemTrans 64 ATB0D/ ; V32 ModemTrans 128 ATB1D/ ; HST ═══ 12.1.2. Section B ═══ G L O B A L Section B The statements in this section affect the processing of all the output blocks and thereby of all the input nodelists. These statements can also be used in the "OUTPUT" section of an OUTPUT block or inside an INPUT block, in which case they affect the compilation of the relevant block only. In the case you use a verb that has already been used in a "higher level" block, it will behave as a local override. ═══ 12.1.2.1. NeededBeforeKill ═══ NeededBeforeKill Tells FastLst that the affected NodeList(s) are needed by the command run via the "BeforeKillSource" statement. The "BeforeKillSource" verb allows you to run a command (executable or batch file) after the compilation has completed, just before FastLst ends and (if "KillSource" is used) deletes the source files that are also present in archived form. The lists affected by "NeededBeforeKill" are extracted, if not already present, before the "BeforeKillSource" command is executed. ═══ 12.1.2.2. ArcMethod ═══ ArcMethod [,] ... Tells FastLst that it must make sure that all new nodelists are archived using the specified methods. The original archive is NOT killed. Obviously, a new nodelist is not rearchived to its original method. is the name of an archiver defined in compress.cfg. is the optional specification of the letter to be used for the variable archive extension. If not specified, it is assumed equal to the first letter of the defaults extension for this archiver. Multiple ArcMethod statements are allowed. Example 1: ArcMethod ZIP LH,H NodeList.Z48 arrives: it is archived to NodeList.H48 also, using the LH archiver. Example 2: ArcMethod ZIP LH NodeDiff.Z48 arrives: the resulting nodelist is archived to NodeList.Z48 using the ZIP archiver and to NodeList.L48 using LH. ═══ 12.1.2.3. ArcDiffMethod ═══ ArcDiffMethod [,] ... Tells FastLst that it must make sure that all new nodediffs are archived using the specified methods. The original archive is NOT killed. Obviously, a new nodediff is not rearchived to its original method. is the name of an archiver defined in compress.cfg. is the optional specification of the letter to be used for the variable archive extension. If not specified, it is assumed equal to the first letter of the defaults extension for this archiver. Multiple ArcDiffMethod statements are allowed. Example: ArcDiffMethod ZIP LH,H NodeDiff.Z48 arrives: it is archived to NodeDiff.H48 also, using the LH archiver. ═══ 12.1.2.4. External Commands ═══ EXTERNAL COMMANDS The following verbs allow to invoke external commands. can be any legal command-line command: it can be the name of an executable file, a batch file or any command that can be understood by your command-line interpreter (OS/2's CMD, 4OS2(***), etc.). If does not directly invoke an executable file, FastLst automatically invokes your default command line interpreter (as specified by the COMSPEC environment variable). ═══ 12.1.2.4.1. Archive Related Commands ═══ Archive Related Commands The following verbs share the same syntax: Two parameters are allowed in : %a is translated to the full pathname of the archive file. %f is translated to the name of the file to be added or extracted (no path). is run from the path where %f belongs. ═══ 12.1.2.4.1.1. BeforeArcList ═══ BeforeArcList Command to be run before archiving a nodelist. ═══ 12.1.2.4.1.2. AfterArcList ═══ AfterArcList Command to be run after archiving a nodelist. ═══ 12.1.2.4.1.3. BeforeUnArcList ═══ BeforeUnArcList Command to be run before extracting a nodelist. ═══ 12.1.2.4.1.4. AfterUnArcList ═══ AfterUnArcList Command to be run after extracting a nodelist. ═══ 12.1.2.4.1.5. BeforeArcDiff ═══ BeforeArcDiff Command to be run before archiving a nodediff. ═══ 12.1.2.4.1.6. AfterArcDiff ═══ AfterArcDiff Command to be run after archiving a nodediff. ═══ 12.1.2.4.1.7. BeforeUnArcDiff ═══ BeforeUnArcDiff Command to be run before extracting a nodediff. ═══ 12.1.2.4.1.8. AfterUnArcDiff ═══ AfterUnArcDiff Command to be run after extracting a nodediff. Example to hatch the new nodelist (note that you probably need to specify the location of the config file since the command is executed from the directory where %f resides): AfterArcList Hatch %a NODELIST "New NodeList" ═══ 12.1.2.4.2. NodeDiff Related Commands ═══ NodeDiff Related Commands The following verbs accept different parameters: %l is translated to the full pathname of the nodelist. %d is translated to the full pathname of the nodediff. is run from the current directory. ═══ 12.1.2.4.2.1. BeforeEdit ═══ BeforeEdit Command to be run before applying a nodediff. ═══ 12.1.2.4.2.2. AfterEdit ═══ AfterEdit Command to be run after applying a nodediff. ═══ 12.1.3. Section C ═══ G L O B A L Section C The statements in this section affect the processing of all the output blocks and thereby of all the input nodelists. These statements can also be used in the "OUTPUT" section of an OUTPUT block (except for the "NoCompile" one) or inside an INPUT block, in which case they affect the compilation of the relevant block only. In the case you use a verb that has already been used in a "higher level" block, it will behave as a local override. ═══ 12.1.3.1. MsgRem ═══ MsgRem [] If MsgRemArea is used, FastLst reports the following comments: No MsgRem statement: none; MsgRem with no : all; MsgRem with : only the comments that begin with "; " where is one of the characters in . The ";" character in means that the comments beginning with "; " or ";" can be reported. Common types of comment lines: ;S This is a comment for SysOps ;U This is a comment for users ;F This comment should appear in formatted Fido lists ;A This is a comment of general interest ;E This comment is an error message Example: "MsgRem SE" Only comments destined to SysOps and Error messages are reported (lines beginning with ";S " and ";E ". ═══ 12.1.3.2. MsgLog ═══ MsgLog [NullPhone] [Redirected] [Points] Some common situations (not really errors) are not reported to MsgLogArea by default: if you want FastLst to report them anyway, you can use this statement, but be aware that very long reports could come out. "NullPhone": systems with empty phone string are logged. "Redirected": systems redirected to their coordinators are logged (Hold, unpublished). "Points": points with empty phone string are logged; be aware that most pointlists contain unpublished (thereby with empty phone) points. Examples: MsgLog Redirected MsgLog Redirected NullPhone ═══ 12.1.3.3. GermanPointList ═══ GermanPointList Instructs FastLst to consider the affected nodelist as a 3D German style pointlist. Zone 2 is assumed, if not explicitly specified in the "NodeList" statement. This verb is usually used inside an Input Block, so that it affects that nodelist only. WARNING: Be aware that using this statement in the global section or in an Output block affects all the involved nodelists ! Example Input Block: NodeList Points24.??? GermanPointList Nodediff Pr24Diff.??? ArcList Points24.??? 1 ArcDiff Pr24Diff.??? 5 ArcListDesc R24 PointList for day %d (%D), %a format ArcDiffDesc R24 PointDiff for day %d (%D), %a format ═══ 12.1.3.4. BeforeCompile ═══ BeforeCompile Command to be run before compiling the affected nodelist. This statement follows the same rules explained in "External Commands" in section B. The %l parameter is translated to the full pathname of the nodelist. is run from the current directory. ═══ 12.1.3.5. AfterCompile ═══ AfterCompile Command to be run after compiling the affected nodelist. This statement follows the same rules explained in "External Commands" in section B. The %l parameter is translated to the full pathname of the nodelist. is run from the current directory. ═══ 12.1.3.6. SysOpLst ═══ SysOpLst Output SysOp data from all the input nodelists to the output list (FidoUser.Lst) and/or index (Sysop.ndx). Example: SysOpLst ═══ 12.1.3.7. FidoTxt ═══ FidoTxt [] Generate an 80 Column Text List of nodes. Nodes included via the "Node,..." method and points are excluded. optionally specifies an output file name, which defaults to "NodeList.Txt". If the same file name has already been used for other nodelists, the output is appended. Example: FidoTxt ═══ 12.1.3.8. FidoPrn ═══ FidoPrn [] Generate a 132 Column Text List of nodes. Nodes included via the "Node,..." method and points are excluded. optionally specifies an output file name, which defaults to "NodeList.Prn". If the same file name has already been used for other nodelists, the output is appended. Example: FidoPrn ═══ 12.1.3.9. IncCoord ═══ IncCoord The coordinators of the specified and upper levels will be always included, even if excluded by "IncAddr" and "ExcAddr". can be ZC, RC, NC, HC. Example: IncCoord NC ═══ 12.1.4. Export Section ═══ Global Export Section You can use here the statements described in the "Export Global Section" of the "Export Block" of the Input Block. ═══ 12.2. Output Block ═══ O U T P U T B L O C K The following verbs define the compilation of a single output binary nodelist. The block begins with a "Output Section", that affects the compilation of all the source (input) nodelists, followed by a sequence of "Input Blocks" that define how to handle each of the source nodelists. The first "output block" can be of a special kind: if the "NoCompile" statement is used instead of "Version7", this block indicates the actions necessary to maintain the specified nodelists, but they are not compiled. ═══ 12.2.1. Version7 ═══ Version7 [] Start of a block of config verbs defining the generation of a Version 7 nodelist. You can generate one or more Version 7 nodelists with different names and path for the output files. Each "Version7" statement marks the beginning of a new output-nodelist definition. is the path where the output .DAT and .NDX files are placed. is the file name for the .DAT and address-index .NDX files. is the file name for the sysop-index .NDX file. If you omit , no V7 SysOp-index will be generated. Unless you use different output nodelists for different domains, you should usually adopt ="NODEX" and ="SYSOP". All the following verbs, up to the next "Version7" (if any), are related to the preceding "Version7" output files. Example: Version7 d:\bbs\v7\ NODEX SYSOP ═══ 12.2.2. NoCompile ═══ NoCompile This verb can be used to start the first "Output Block", instead of "Version7". This way the first output block becomes a "NoCompile" block and the indicated nodelists are maintained but not compiled. This is a means for maintaining a NodeList (applying nodediffs, archiving with different archivers etc.) without compiling it. The statements related to nodelist compilation (see Global section C) are obviously illegal in a "NoCompile" block. ═══ 12.2.3. Output section ═══ O U T P U T Section The following verbs affect the compilation of the current output block and must precede the definitions of the input blocks (which start with the Nodelist statement). ═══ 12.2.3.1. FidoUserLst ═══ FidoUserLst [] Generate "fidouser.lst style" text SysOp list. optionally specifies an output file name, which defaults to "FidoUser.Lst". Different output blocks require different names. Example: FidoUserLst ═══ 12.2.3.2. SysDup ═══ SysDup When a SysOp name is present in various nodes, all the name/address couples are kept in the SysOp lists (fidouser.lst/sysop.ndx). If you want to keep only one address you can use one or more SysDup lines: the SysOps who have the addresses listed in will be present in the output sysop lists with the specified address only. You can use abbreviated addresses, if you like, provided that the first address of every "SysDup" is complete (FastLst cannot make any assumption for the first item in a list). Example: SysDup 2:332/504 505 336/980 3:25/28.27 ═══ 12.2.3.3. Block Specifications ═══ Block Specifications You can use here the same statements described in the "Global Section B" and (if this is not a "NoCompile" block) "Global Section C" and "Export Global Section" (see the Export Block below). ═══ 12.2.3.4. Address Specific Stuff ═══ ADDRESS SPECIFIC STUFF The following verbs define address specific stuff that will affect the compilation of all the source nodelists compiled in the current output block. These statements are illegal in a "NoCompile" block. If you prefer, you can specify this type of information in the "Address Specific Stuff" section of the pertinent input block. WARNING: make sure all addresses have full info (incl. zone). ═══ 12.2.3.4.1. Password ═══ Password Allows to specify one at a time. Version 7 has no limit on password length, however the programs that use it are usually limited to 8 chars. Some (rare) programs have problems with 8 chars and need a maximum of 7 or 6 chars. Example: Password 2:332/504.4 Password ═══ 12.2.3.4.2. PasswordFile ═══ PasswordFile Allows to include a password file that contains many address/password couples, one per line. In this file you can omit the "Password" keyword. If you like, you can use some "Password" keywords together with one "PasswordFile", however you cannot use more than one "PasswordFile". Please note that the definitions found in this file have effect on the current (Output or Input) block ONLY. FastLst writes to the log file which source or output nodelist is affected by each passwordfile; so, in case of doubts, just check the logs. Example: PasswordFile fidonet.pwd ═══ 12.2.3.4.3. Phone ═══ Phone Allows to override a nodelist phone number. must be in the form used in the nodelist. Example: Phone 2:332/501.0 39-59-399999 ═══ 12.2.3.4.4. NodeFlags ═══ NodeFlags Allows to substitute the flags listed in the nodelist entry of . If you want to change the CM flag or modem type flags (HST, V32b, ZYX) etc, you can use this verb. Please note that the old flags are lost, so you need to indicate all the necessary flags. Example: NodeFlags 2:332/501.0 CM,H16,V32b ═══ 12.2.3.4.5. Flags ═══ Flags The Flags statement allows to set the "user defined" bits in the Flags word of the compiled nodelist entry. These bits are named 5,6,7,8,9,A,B,D,E,F where bit 5 is the 6th bit and F is the 16th bit of the word. Example: Flags 2:332/501.0 AB5 ; Set bits 5,A & B. ═══ 12.2.3.4.6. Cost ═══ Cost [] and are in the range 0->65535. Overrides the Cost and User_Cost fields of in the compiled nodelist. If no is given, it's taken equal to . Example: Cost 2:332/501.0 150 ═══ 12.2.3.5. Segment Selection ═══ SEGMENT SELECTION The following verbs allow to include or exclude selected segments. If you do not use them, the full is compiled. Be aware that the process of checking each address against the list of segments to be included or excluded could slow down the compilation, even if some gain could come from the exclusion of large segments. These statements are obviously illegal in a "NoCompile" block. These statements can be used in an Input block to affect that nodelist only. ═══ 12.2.3.5.1. IncAddr ═══ IncAddr If you want to selectively include nodelist segments, you can use this option: only zones, regions, nets, hubs, nodes, points that are listed in will be present in the output files. You can specify zone, region/net, hub/node and point numbers. Example: IncAddr 1 2:33 2:200/100 3:632 4:801/17 Compiles: zone 1, region 33 of zone 2, hub 100 of net 200 of zone 2, net 632 of zone 3, node 4:801/17 ═══ 12.2.3.5.2. ExcAddr ═══ ExcAddr If you want to exclude some segments from the compilation, you can list them in , in the same way as for "IncAddr". You can use either "IncAddr" or "ExcAddr" or both of them to Include only selected segments and exclude sub-segments. Example: ExcAddr 2:332/500 Excludes Hub 500 of net 332 of zone 2. ═══ 12.2.3.5.3. IncSysOp ═══ IncSysOp If not used, all the SysOp entries of the compiled segments will be in the output SysOp list/index (if SysOpLst is active). If you want to limit the SysOp entries to selected segments, you can use this verb, listing partial addresses in . SysOps from segments excluded from compilation via "IncAddr" and "ExcAddr" will obviously never be present in the SysOp list/index anyway. Example: IncSysOp 2 Includes only SysOps from zone 2. ═══ 12.2.4. Input Block ═══ I N P U T B L O C K The Input Block starts with a "NodeList" statement and continues until the start of the next Input or Output Block (NodeList or Version7 statement respectively) or the end of the configuration file. ═══ 12.2.4.1. NodeList ═══ NodeList [] Start of a block of config verbs defining the processing of the specified file. You can use many "NodeList" statements to compile several different source nodelists into the same output files specified by the preceding "Version7" statement. Each "NodeList" verb marks the beginning of a new input-nodelist processing-info block. When an address is present in more than one (e.g. you compile both the full nodelist and the faster updated local region or zone segment) only the entry found in the last compiled is put in the indexes. To have the most up-to-date entries in your V7 indexes, please include local segments after the larger list. is the name of the input nodelist. If you don't specify a path, is assumed. If a terminal ".???" is specified, all the files with 3 digits at the place of '???' are examined and that with the latest 3 digit day of the year is choosen for compilation. The optional is a partial address that must be specified for nodelist segments that do not have full address info. For example, a REGION segment usually starts with the "Region," keyword and does not contain any Zone info: its up to you to tell FastLst which zone we are talking about. Analogously you should provide zone and net info when compiling a Hub segment. The region is assumed equal to the net number of the partial address, the hub equal to the node number. Examples: IMPORTANT: Please note that the following lines represent a list of examples, NOT an example of multiple nodelist compilation. After each "NodeList" verb, you must specify all the statements that affect the compilation of that particular source file. NodeList nodelist.??? ; Fidonet nodelist NodeList region.033 2 ; Region 33 list, zone 2 NodeList region24.??? 2 ; Region 24 list, zone 2 NodeList net.332 2:33 ; Net list, zone 2, region 33 NodeList hub.500 2:332 ; Hub list, zone 2, net 332 NodeList locnode.500 2:332/500 ; Some nodes in zone 2, ; net 332, hub 500 NodeList points.504 2:332/504 ; Points of 2:332/504 ; in "Point," format. NodeList morenode.lst ; Some nodes in the "Node," ; format. No required ; since the "Node," line gives ; full address info. NodeList ptlist.??? ; Point List in the "Boss," ; format. No required ; since the "Boss," line gives ; full address info. ═══ 12.2.4.2. Input Section ═══ Input Section The following statements affect the handling of the nodelist specified by the last "NodeList" statement (current Input Block). ═══ 12.2.4.2.1. NodeDiff ═══ NodeDiff is the name of the nodediff file. If you don't specify a path, is assumed. must terminate with ".???". FastLst will search for a suitable , considering the files that have a 3 digit day of the year in the place of the trailing '???'. Example: NodeDiff NODEDIFF.??? ═══ 12.2.4.2.2. ArcList ═══ ArcList [] You can specify the name of the archive containing . It is necessary if you use automatic extraction/rearchiving, but it can even be used only to delete old files. is used to extract new nodelists, to compress them using the methods defined in "ArcMethod", to compress the new nodelists after the application of nodediffs. If has a terminating ".???", all the files that have a suitable fixed (.zip, .lzh etc.) or variable (.z10, .z17, .l10, .l17 etc.) extension are considered, taking the digits as the last 2 digits of the day of the year. If you really want to limit search to a specified fixed or variable extension, you can do: "ArcList nodelist.zip", to consider .zip only; "ArcList nodelist.z??", to consider .z?? only. optionally specifies the number of archives to be kept, basing on the day of the year (the file date is also used to infer the correct chronological order). If you maintain archives with multiple different extensions (.z??, .l??, etc.) the actual number of files increases, since multiple files with the same day extension count for one. The description associated to the deleted files is removed from FILES.BBS. Example: ArcList nodelist.??? 1 ═══ 12.2.4.2.3. ArcDiff ═══ ArcDiff [] You can specify the name of the archive containing . It is necessary if you use automatic extraction/rearchiving, but it can even be used only to delete old files. must terminate with ".???". All the files that have 2 digits in the place of the last 2 '?' are examined, taking the digits as the last 2 digits of the day of the year. If you really want to limit search to a specified extension, you can do: "ArcDiff nodediff.z??", to consider .z?? only. optionally specifies the number of archives to be kept, basing on the day of the year (the file date is also used to infer the correct chronological order). In the case of multiple archive extensions, the actual number increases consequently. The description associated to the deleted files is removed from FILES.BBS. Example: ArcDiff nodediff.??? 5 ═══ 12.2.4.2.4. ArcListDesc ═══ ArcListDesc ArcDiffDesc You can specify a description to be added to FILES.BBS for the new nodelist and nodediff files created by FastLst. Some parameters are available: %d : the 3 digit day number (0 padded) %a : the archiver name %D : the date, USA format (Feb 10, 1995) %L : the date, Local format Example: ArcListDesc Fido Nodelist for day %d (%D), %a format ArcDiffDesc Fido Nodediff for day %d (%D), %a format ═══ 12.2.4.3. Local Specifications ═══ Local Specifications You can use here the same statements described in the "Global Section B" and (if we are not in a "NoCompile" block) "Global Section C" and "Export Global Section" (see the Export Block below). ═══ 12.2.4.4. Address Specific Stuff ═══ ADDRESS SPECIFIC STUFF You can specify here the address specific stuff that is related to the current source nodelist (if not inside a "NoCompile" block). If you have already used the "Output section" for specifying this kind of information, you can skip this section. WARNING: Often you will compile segments of a previously compiled nodelist. For example you could have a "NodeList nodelist.???" block for the world nodelist and then a "NodeList region.033" block for your region's nodelist segment. The majority of entries in the latter will be duplicates of entries already found in the former. However, in the case of duplicates, only the entries found in the last involved "NodeList" block will go to the indexes and be active. This way you can compile the full world nodelist while keeping your segment up-to-date with local segments that get updated faster than the full nodelist. When you have to specify "Address Specific Stuff" for nodes that are present in more than one "NodeList", you must do that in the last involved "NodeList" block (or in the Output Section, of course), otherwise your indications will have no effect. For a list of allowed statements, please see the "Address Specific Stuff" section of the "Output" section above. ═══ 12.2.4.5. Segment Selection ═══ SEGMENT SELECTION You can use here the same statements described in "Segment Selection" in the Output Section (if not inside a "NoCompile" block). ═══ 12.2.4.6. Export Block ═══ EXPORT Block FastLst can "export" segments of nodelist: e.g. you can export the Region 25 from the world nodelist to a file called Region25.???, where ??? stands for the day of the year. Note that this feature is for exporting segments of nodelist to a dedicated file. To compile segments you should continue using the "Segment Selection" section of FastLst.Cfg. These blocks MUST be at the _END_ of an "Input Block"; there can be multiple Export Blocks in a single Input Block. Obviously the Export Block is available for compiled nodelists only, thus it is illegal inside a "NoCompile" block. The export is done ONLY when a new NodeList is found (or when the file to be exported exists neither in uncompressed nor in archived form), even if the config file is changed. So, you can safely hatch the created arcfile via the AfterArcExport command with no danger of hatching it all the times you change something in the cfg. Under these conditions, if you really want to export anyway, you must use the -i command line switch. IMPORTANT: If you use the same export filename for multiple source nodelists, all the exported segments are appended one another. This way, if you like, you can make FastLst generate a "plain" nodelist file with many different source nodelists in it, just appended one after another. Some people need this feature to create input for some other program. For this feature to work, you need to specify the '+' parameter in the "Export" statement. See the example at the end of the "Export Global Section". ═══ 12.2.4.6.1. Export ═══ Export [+] [] The '+' sign must be specified when you want to create a joined list by exporting multiple nodelists to the same export . This way the exported file will be created every time the nodelist is compiled and its timestamp will not be changed to be equal to the source. is the name of the file to which you want to export the selected segment(s). is the partial address list of segments to be exported. Usually it is a single partial address. If omitted, the entire nodelist is exported (useful to create a joined nodelist). This statement marks the start of an "Export Block". Multiple "Export Blocks" are allowed in the same "Input Block". N.B. The Export blocks must be at the _END_ of an input block. See the example at the end of the "Export Global Section" below. Example: Export region25.??? 2:25 ═══ 12.2.4.6.2. Export Section ═══ Export Section The following verbs define the parameters for the Export specified by the last "Export" statement. ═══ 12.2.4.6.2.1. ArcExport ═══ ArcExport [Keep#] is the name of the archive file to which you want to compress the exported . [Keep#] is the optional number of archive versions to be kept, basing on the day of the year (the file date is also used to infer the correct chronological order). Example: ArcExport region25.??? 2 ═══ 12.2.4.6.2.2. ArcExportDesc ═══ ArcExportDesc is the description to be applied to FILES.BBS when a new archive is created. Example: ArcExportDesc Region 25 %D, %a format ═══ 12.2.4.6.3. Export Global Section ═══ Export Global Section The following verbs can be used in the "Export Section" of an "Export Block", in the "Input Section" of an "Input Block", in the "Output Section" of an "Output Block", in the "Global Section". In few words, they are legal everywhere except for the "NoCompile" block. Depending on their positions, they affect the involved nodelists only. ═══ 12.2.4.6.3.1. ArcExportMethod ═══ ArcExportMethod [,] ... Specifies the archive type(s) to be created for the exported file. is the archiver name as defined in Compress.Cfg. is the optional first letter to be used for variable archive extensions. Example: ArcExportMethod zip lh,H ═══ 12.2.4.6.3.2. BeforeArcExport/AfterArcExport ═══ BeforeArcExport AfterArcExport Commands to be run before/after archiving the exported file. can be any type of command (executable file, batch file, internal command, alias, etc.) and supports the %a (full archive name) and %f (name of the file to be compressed, no path) and is run from the directory where %f resides. WARNING: since is executed from the directory where the file to be compressed belongs, you could need to specify the location of the config files used by the programs invoked via . Example: AfterArcExport Hatch %a ═══ 12.2.4.6.3.3. ExportNeededBeforeKill ═══ ExportNeededBeforeKill Specifies that the exported file is needed by the "BeforeKillSource" command. Full Example: NodeList nodelist.??? NodeDiff nodediff.??? ArcList nodelist.??? 2 ArcDiff nodediff.??? 5 ArcListDesc Fido Nodelist for day %d (%D), %a format ArcDiffDesc Fido Nodediff for day %d,(%D), %a format Export region25.??? 2:25 ArcExport region25.??? 1 ArcExportDesc Region 25 %D, %a format ArcExportMethod zip lh AfterArcExport Hatch %a Export region24.??? 2:24 ArcExport region24.??? 1 ArcExportDesc Region 24 %D, %a format ArcExportMethod zip Full Example to generate a joined list: NodeList nodelist.??? NodeDiff nodediff.??? ArcList nodelist.??? 2 ArcDiff nodediff.??? 5 ArcListDesc Fido Nodelist for day %d (%D), %a format ArcDiffDesc Fido Nodediff for day %d,(%D), %a format Export + megalist.Lst NodeList zonelist.??? NodeDiff zonediff.??? ArcList zonelist.??? 2 ArcDiff zonediff.??? 5 ArcListDesc Zonelist for day %d (%D), %a format ArcDiffDesc Zonediff for day %d,(%D), %a format Export + megalist.Lst ArcExport megalist.??? 1 ArcExportDesc MegaList, %a format ArcExportMethod zip lh ═══ 13. Compress Definition File ═══ COMPRESS DEFINITION FILE The file is a sequence of Archive definition blocks, each one starting with "Archiver" and ending with "End Archiver". You can find an example in the Compress.Cfg file included in the FastLst distribution pack. The order of the archive definition blocks within may be important: when trying to unpack a compressed file, the list of archivers is scanned in a reverse order. In the case of two archivers that use the same identification character at the beginning of the file (e.g. ARC and PAK), you must specify the archiver that can unpack both (PAK) after the other one (ARC). The compress.cfg file can be shared between DOS and OS/2 applications: the "DOS" and "OS2" keywords are available to distinguish between the commands to be used under DOS and OS/2. O.S. specific archivers or commands must be prefixed with the relevant keyword. IMPORTANT NOTE: The lines that begin with "DOS" or "OS2" are parsed by FastLst's DOS and OS2 versions respectively. If you need your FastLst/2 execute a DOS command, you MUST NOT use the DOS keyword: if you do, FastLst/2 will never parse that line; if you do not, Fastlst/2 will execute the DOS command "normally", provided you have installed OS/2's Dos support. ═══ 13.1. Archiver ═══ Archiver Starts the Archive definition block. is the name used in FastLst.Cfg for this archiver. Example: Archiver ZIP ═══ 13.2. Extension ═══ Extension Specifies the default extension for the compressed files. Example: Extension ZIP ═══ 13.3. Ident ═══ Ident , is a decimal integer number representing the offset at which FastLst must look for the archive identity marker . Negative values can be used to indicate offsets from the END of a compressed file. -1 means "the last byte", -2 "the second last byte" and so on. is a series of hexadecimal figures which represent the bytes of the marker string that FastLst must look for at the specified offset in the files it is trying to unpack. Example: Ident 0,504b0304 ; "PK^c^d" ═══ 13.4. Add ═══ Add Specifies the command to add files to an archive. %a and %f are translated to the name of the archive and file to add. Example: Add zip -jk %a %f ═══ 13.5. Extract ═══ Extract Specifies the command to extract files from an archive. %a and %f are translated to the name of the archive and file to extract. Example: Extract unzip -qqnjC %a %f ═══ 13.6. View ═══ View This line is recognized and accepted for compatibility, but not used by FastLst. ═══ 13.7. End Archiver ═══ End Archiver This statement is used to close a Archive definition. ═══ 13.8. Examples ═══ Complete example 1 (you need OS/2 only): Archiver ZIP Extension ZIP Ident 0,504b0304 Add zip -jk %a %f Extract unzip -qqnjC %a %f View unzip -v %a End Archiver Complete example 2 (you need DOS only): Archiver ZIP Extension ZIP Ident 0,504b0304 Add pkzip -a %a %f Extract pkunzip -n %a %f View pkzip -v %a End Archiver Complete example 3 (you need both OS/2 and DOS): Archiver ZIP Extension ZIP Ident 0,504b0304 OS2 Add zip -jk %a %f DOS Add pkzip -a %a %f OS2 Extract unzip -qqnjC %a %f DOS Extract pkunzip -n %a %f OS2 View unzip -v %a DOS View pkzip -v %a End Archiver Complete example 4 (archiver to be used under DOS only): DOS Archiver ZOO DOS Extension ZOO DOS Ident 0,5a4f4f ; "ZOO" DOS Add zoo a: %a %f DOS Extract zoo e:O %a %f DOS View zoo v %a DOS End Archiver Complete example 5 (it's a DOS executable, to be used under DOS or OS/2 indifferently): Archiver ZOO Extension ZOO Ident 0,5a4f4f ; "ZOO" Add zoo a: %a %f Extract zoo e:O %a %f View zoo v %a End Archiver ═══ 14. TroubleShooting ═══ T R O U B L E S H O O T I N G ═══ 14.1. Extraction problem ═══ Problem: FastLst does not extract the correct nodelist/nodediff. Solution: Perhaps there is some nodelist/nodediff with corrupted file date. Check your "ArcPath", manually extract to the "InputPath" the required nodelist/nodediff and delete the archive (or reset its file-date so that it is similar to that of the enclosed file). FastLst will automatically rearchive the nodelist/nodediff if you use "ArcMethod"/"ArcDiffMethod", otherwise you can rearchive manually. ═══ 14.2. Out of Memory ═══ Problem: FastLst goes out of memory (Dos versions). Solution: DOS 16: - try freeing as much conventional memory as possible. - reduce the "MsgSize" buffer, if you have used that statement in the configuration. - be aware that 530K of free conventional memory is the minimum requirement. - If you have a 386sx or better, you can use the 32 bit version that has less stringent conventional memory requirements, but you will need at least 800KB of extended memory. DOS 32: - give more DPMI memory to FastLst - enable the temporary file method: use the -t command line switch or the "FileMode" statement in the configuration file. ═══ 14.3. Slow processing ═══ Problem: FastLst works very slowly (OS/2 32 bit version). Solution: Perhaps you are compiling a large nodelist or set of nodelists on a system with few MegaBytes of free physical RAM, so that OS/2 needs to extensively use virtual memory. Try using the "temporary file" method: specify the -t command line switch or use the "FileMode" statement in the configuration file. ═══ 14.4. System performance degradation ═══ Problem: FastLst loads the system excessively, so that other OS/2 tasks don't perform properly (OS/2 32 bit version). Solution: Use the "Priority Idle" statement in the configuration file, so that FastLst receives its time slices only when other processes with higher priority are idle. ═══ 14.5. I want maximum speed ═══ Problem: I run FastLst while the communications are off, so I would like it to run as fast as possible even if it is in the background and other task are active (OS/2 32 bit version). Solution: Use the "Priority High 31" statement in the configuration file, so that FastLst receives the maximum priority for "non time-critical" processes. ═══ 14.6. Support ? ═══ Problem: I cannot find the solution to my problems. Solution: - Try linking the APWORKS support echo - Try asking your local supporter - Try asking the author directly You can find the addresses in the ReadMe.1st file. ═══ 15. SHAREWARE ═══ S H A R E W A R E If you like this program and continue using it, you should pay the author for his work, as per the ShareWare concept of distribution. Please see LICENSE.DOC and REGISTER.DOC for information. Thank you for your interest in FastLst. ═══ 15.1. License.Doc ═══ ╔═══════════════╗ ║ ║ ║ F A S T L S T ║ ║ ║ ╚═══════════════╝ L I C E N S E P O L I C Y April 1995 The FastLst software (program and accompanying documentation) are: Copyright (c) 1992-1995 Alberto Pasquale, all rights reserved. S H A R E W A R E The FastLst software is distributed as ShareWare: you are granted the right to evaluate the program for a maximum of 30 days before paying the author. After the evaluation period, you are required to either register (see REGISTER.DOC) or stop using the program. You are encouraged to distribute the original and unmodified FastLst package freely, in any form and on any media, provided you do not charge any fee for the program itself. The FastLst package could be included in CD-ROM collections, subscription download areas, BBS packages, provided it remains in its complete and unmodified original archive. In any case, the user must register with the author after the evaluation period. DISCLAIMER The FastLst software is provided on an "as is" basis without warranty of any kind, expressed or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. The person using the software bears all risk as to the quality and performance of the software. The author will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason. ═══ 15.2. Register.Doc ═══ ******* ** **** ****** **** **** ****** ** * **** ** ** * ** * ** ** ** * ** * ** * ** ** ** ** ** ** ** **** ** ** **** ** ** **** ** ** * ****** ** ** ** * ** ** ** ** ** ** ** ** ** ** ** ** ** **** ** ** **** **** ******* **** **** (C) Copyright 1992-1995 by Alberto Pasquale A L L R I G H T S R E S E R V E D For licensing terms and disclaimer, see LICENSE.DOC. FastLst required many months of work: by registering you will support me in developing this and other similar products. You will receive a registration Key that removes the initial 2 second pause and makes FastLst show "Registered To: " instead of the registration request banner. The registration is guaranteed valid for all future versions 1.3x, and, in any case, for all versions that will be released in a period of 1 year after registration. After this period, if major new versions will be released, it is possible that an upgrade fee is required. ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ Registration fee: US$ 20, DEM 30, ITL 30,000 or (see below) ║ ║ ║ ╚═════════════════════════════════════════════════════════════╝ ═══ 15.2.1. How to Register ═══ HOW TO REGISTER Registering is quite easy; you can register: - Directly with me, using cash, check or postal money order. - by Credit card, via PsL (Houston, USA), available worldwide, toll free number from USA. - via local Registration Site in Germany and USA. First of all you must complete the included REGISTER.FOR, following the instructions given below in this document, then you have to choose how to send the money. The registration key will be sent you via crash netmail, fax or postal mail, depending on your preference (crash netmail is the default method). Should you not receive your registration key in a reasonable time, please contact me (via crash netmail or fax where possible). Please allow at least 3 weeks for netmail/fax response to international airmail, 1 week for netmail/fax response to italian mail. Double the time for postal mail response. Please send your netmail or FAX to: Alberto Pasquale 2:332/504@fidonet Everyone can call crash: 2:332/504@fidonet +39-59-243882 V34 V32T H16 FAX 24h Please make checks and money orders payable to: Alberto Pasquale Viale Verdi 106 41100 Modena Italy ═══ 15.2.1.1. Cash ═══ Cash: Just put the (accurately hidden) banknotes (US$ 20, DEM 30, LIT 30,000) together with Register.For in an envelope. If you do not have US dollars, German marks or Italian liras and do not like going to the bank, you can send the equivalent in your currency, provided it is commonly exchangeable. Please be aware that coins are nice gifts but are NOT exchangeable. ═══ 15.2.1.2. Check ═══ Check: Just put the check (accurately hidden) together with Register.For in an envelope. Please read carefully the following instructions: - Eurocheque: ITL 30,000 (thirty thousand); please do not forget to write the Eurocheque card number on the back of the check. - Italian check: 30,000 lire - Other checks: US$ 25, DEM 35, ITL 40,000 or equivalent (the surcharge is to partially cover the foreign check redemption cost). ═══ 15.2.1.3. Postal Money Order ═══ Postal Money Order: Just go to the post office. For international money orders it is best to go to an important post office, since minor ones are generally not used dealing with international money orders. Usually you can choose whether to use your currency or the recipient's. Please be sure to specify the necessary registration information in the "sender message" field or send separately Register.For via postal mail or in a (crash, if possible) netmail to the author. - Italian money order "vaglia": 30,000 lire. - International money order in italian liras: ITL 30,000 (thirty thousand). - International money order in your currency: US $23, DEM 35 or equivalent. If you would like to receive the key soon, you can FAX me (+39-59-243882) the receipt of the postal money order together with REGISTER.FOR. ═══ 15.2.1.4. Credit Card ═══ Credit Card: An agreement has been reached with PSL (Public Software Library, Houston, TX, USA) for a credit card order taking service. To register by credit card, you must fill in the Credit.Crd form and send BOTH Register.For and Credit.Crd to PSL directly (they will forward Register.for to me). You can order with MasterCard, Visa, American Express or Discover Card: you will be charged US$ 25 ($20 + $5 shipping and handling). ATTENTION: you MUST NOT send me any information about your credit card. If you do, I am NOT allowed to forward your credit card info to PSL. ATTENTION: for any question regarding FastLst, its registration, key delivery etc, you must contact me directly. You must contact PSL to order ONLY. PSL will notify me your order within one business day and I will usually send your key crash within 24h, so if you order by fax or phone, you should usually receive your key within 2 business days. ATTENTION: In certain "holiday" periods (Christmas, Easter, end of July, first half of August) there could be some delay (a few days for Christmas or Easter, a couple of weeks in July/August). If you think your order is particularly late, please contact me first ! Credit card registrations may be made by the following methods (please be sure to always include all the necessary information from BOTH Register.For and Credit.Crd). ATTENTION: It may happen that the PSL operator asks you for your preferred diskette format. You must be aware that this could be "standard" PSL procedure, but I will only send you a key (via crash netmail, fax or letter), since you already have the program. IMPORTANT: Please, be sure to always give PsL the address where you want to receive your key: fidonet name and address, fax number, or complete postal address. If I don't receive the necessary info for crashing or faxing the key, I will be forced to send you an air-mail letter (2-3 weeks for delivery). In the case of doubts, you can send me the Register.For by crash netmail or fax. -- Phone PsL at: 800-2424-PsL i.e. 800-2424-775 (Toll free from USA) +1-713-524-6394 (international) PSL Office Hours: 7:00 a.m. to 6:00 p.m. CST Monday->Thursday 7:00 a.m. to 12:30 p.m. CST Friday Be sure to have BOTH Register.For AND Credit.Crd available to give order information to PSL. First of all, mention PSL part #11471. -- FAX PsL at +1-713-524-6398 -- Email PsL at CompuServe userid 71355,470 -- Write PsL at: The Public (software) Library P.O. Box 35705 Houston, TX 77235-5705, USA Please, let me insist one more time: ╔═══════════════════════════════════════════════════════╗ ║The above numbers are for ORDERS ONLY. ║ ║Any question about the status of the shipment of the ║ ║order, registration options, product details, technical║ ║support, etc, must be directed to the author, at the ║ ║address given below in this documentation. ║ ╚═══════════════════════════════════════════════════════╝ The Public software Library also maintains a vast library of shareware and public domain programs and prints a monthly magazine announcing new releases and general software news. ═══ 15.2.1.5. Local Registration/Support sites ═══ Local Registration/Support Sites: If you choose this way, you will have contacts with them only: you will send money to them and they will send you back the key in a few days. ═══ 15.2.1.5.1. Germany ═══ Germany: Roland Schiradin 2:2454/169@fidonet +49-6123-61750 24h Mail Only Stockbornstr. 10 65343 Eltville Internet: degr9tr9@ibmmail.com He has the APWORKS support echo and TIC file-areas for my programs available. Besides he can provide you with information about the nodes carrying APWORKS in Germany. He has the latest version of FastLst available with the FASTLST (OS/2), FASTLSTD (Dos), FASTLSTG (German Docs). To register, please contact him before sending money. Anyway the fee should be between DEM 25 and DEM 30, depending on the current exchange rate. He has done a very good job in the last months: I take the occasion for addressing him a big THANK YOU. ═══ 15.2.1.5.2. USA ═══ USA: Dan Polivy 1:101/318@fidonet 120 Gordon Road Waban, MA 02168 BBS: ZyXel 19.2 +1 617 964 1633 OS2Net: 81:150/318 EMSINet: 10:617/101 ITCNet: 85:858/114 Internet: sysop@busstop.fidonet.org He has the latest versions of FastLst available with the FASTLST (OS/2) and FASTLSTD (Dos) magics. To register, you can send him US$ 25. ═══ 15.2.2. How to fill in Register.For ═══ INSTRUCTIONS FOR COMPILING REGISTER.FOR: To avoid errors in the key, please PRINT. Thank you very much for your support ! ═══ 15.2.2.1. Name ═══ Name: Your complete name. Example: John Doe ═══ 15.2.2.2. Reg ═══ Reg: The registration string you want displayed by FastLst. You can use any character in the IBM set (including special national characters above ASCII 127; if you do not use code page 437 (USA), please specify the code numbers) and you can use lowercase and uppercase at your preference. Maximum length: 63 characters. Usually it should be the same as your name, in which case you can omit this field. ═══ 15.2.2.3. Netmail to ═══ Netmail to: Unless you ask differently in the notes, I will send you the registration key via crash netmail. You have to specify the complete destination field for the netmail message. Examples: John Doe of 1:200/300.4 John Doe of 1:200/300.0 ═══ 15.2.2.4. Crash to ═══ Crash to: You have to specify the data necessary for crashing the message. Usually this should be your system or your Boss (if you are a point). I will call as 2:332/504@fidonet. - If your system (or your Boss) is 24h and it is in the fidonet nodelist, you can omit this field. - If your system is not 24h, please give me a 24h system to which I can crash your netmail for routing. - If the system in consideration is not in the fidonet nodelist, please add its complete phone number and modem type. Examples: 1:200/400@fidonet 9:800/700@ABCnet +1-703-4567 ZYX ═══ 15.2.2.5. Fax ═══ Fax: This is your (24h) fax number, if any. Should I have trouble with netmail, this will be the second choice. Should you prefer receiving a fax rather than a crash netmail, please tell me in the notes. ═══ 15.2.2.6. Address ═══ Address: The postal address is the last opportunity of sending you the key, should netmail and fax fail. If you prefer receiving the key via postal mail, please state in the notes. ═══ 15.2.2.7. Version ═══ Version: This is not essential and is included for statistical purposes only (the key works with all versions). ═══ 15.2.2.8. Notes ═══ Notes: You can send me your wish list for future versions, or tell me that you prefer receiving the key via fax or postal mail instead of crash netmail. ═══ 15.3. Register.For ═══ FastLst Order Form (Please PRINT) See Register.Doc for instructions: Date: __/__/__ Name: _________________________________________________________ Reg.: _________________________________________________________ Netmail to: ___________________________________________________ Crash to: _____________________________________________________ Fax: __________________________________________________________ Address: ______________________________________________________ ______________________________________________________ ______________________________________________________ Version: _.___ OS/2 32 ( ) OS/2 16 ( ) DOS 32 ( ) DOS16 ( ) Notes: ________________________________________________________ _______________________________________________________________ _______________________________________________________________ ═══ 15.4. Credit.Crd ═══ ------------------------------------------------------------------------------- FastLst Credit Card Registration Form PSL Part number 11471 ***************************************** * DO NOT SEND this form to the author ! * ***************************************** Please read carefully Register.Doc for instructions. Date _________________________ Cardholder's name, exactly as it appears on the credit card: ___________________________________________________________ [Company:] ___________________________________________________________ Billing address for the card: ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ Payment by: ( ) MasterCard ( ) Visa ( ) American Express ( ) Discover Card Card #: ________________________________ Exp. Date: _____________ Signature of cardholder: ___________________________________________ ------------------------------------------------------------------------------- ═══ 16. Sample config files ═══ Some example configuration files ═══ 16.1. Minimal Configuration ═══ ; FastLst 1.30, (c) Copyright 1992-1995 Alberto Pasquale ; FastLst.Cfg Example ; Minimal configuration ; RegKey YourRegistrationKey CompressCfg d:\flst\compress.cfg InputPath d:\flst\nodelist ArcPath d:\flst\arc V7BugFix Dial ; for Europe 39-59- / 5 0 ; country and district code 39- 0 60 0 - 00 300 0 End ; For North America (see the doc for more details !): ; Dial ; LocalValues 1-414- / 0 ; country and area code ; LocalExchanges 231 232 233 235 236 424 ; 1-414- 1- 25 ; 1- 1- 50 ; - 011 250 ; End Version7 v7 NODEX SYSOP FidoUserLst SysOpLst ArcMethod zip ArcDiffMethod zip PasswordFile d:\flst\fastlst.pwd NodeList nodelist.??? NodeDiff NODEDIFF.??? ArcList nodelist.??? 1 ArcDiff nodediff.??? 2 ArcListDesc Fido Nodelist for day %d (%D), %a format ArcDiffDesc Fido Nodediff for day %d (%D), %a format NodeList REGION.033 2 ; Region 33 in zone 2 ArcList region33.??? ArcListDesc Region 33 (Italy) fido nodelist, %a format NodeList Apw_Pnts.Lst ; Points in "Boss," format ═══ 16.2. Full configuration ═══ ; FastLst 1.30, (c) Copyright 1992-1995 Alberto Pasquale ; FastLst.Cfg Example ; Full configuration ; See the documentation for more details ! ; RegKey YourRegistrationKey Priority Idle ; FileMode StatusLog d:\flst\fastlst.log CompressCfg d:\flst\compress.cfg InputPath d:\flst\nodelist ; plain nodelists ArcPath d:\flst\arc ; archived nodelists/nodediffs KillAfter KillSource V7BugFix NoRedir Dial ; for Europe LocalValues 39-59- / 0 0 ; country and district codes LocalExchanges 21 22 LocalExchanges 23 24 39-59- / 5 0 39- 0 60 0 43- 0043- 100 0 32- 0032- 100 0 45- 0045- 100 0 33- 0033- 100 0 49- 0049- 100 0 44- 0044- 100 0 34- 0034- 100 0 46- 0046- 100 0 41- 0041- 100 0 1- 001- 200 0 - 00 300 0 End ; Dial ; for North America ; LocalValues 1-604- / 0 ; country and area codes ; LocalExchanges 220 221 222 224 228 230 231 240 ; LocalExchanges 241 244 250 251 252 253 254 255 ; LocalExchanges 257 258 261 263 264 266 ; ; 1-604- 1-604- 25 ; 1- 1- 50 ; - 011 250 ; End TypeDef V34 1 VFC 2 UVFC 2 V32T 3 UV32T 3 H16 4 V32B 5 ZYX 5 Z19 5 Z16 5 H14 6 V32 7 HST 8 End MsgLogArea d:\bbs\mail\net -$ MsgRemArea d:\bbs\mail\net -$ MsgSize 60000 ; do not use with Dos 16 bit version ! MsgFromNode 2:332/504 MsgToNode 2:332/504 MsgTo Alberto Pasquale MsgAttr P ;FidoTxt ;FidoPrn Version7 v7 NODEX SYSOP FidoUserLst SysOpLst ArcMethod zip Lh ArcDiffMethod zip LH ArcExportMethod zip lh PasswordFile d:\flst\fastlst.pwd Phone 2:332/504 39-59-243882 Cost 2:332/504 500 0 NodeList zonelist.??? NodeDiff alldiff.??? ArcList zonelist.??? 2 ArcDiff alldiff.??? 5 ArcListDesc Non-Fido Nodelist for day %d (%D), %a format ArcDiffDesc Non-Fido Nodediff for day %d (%D), %a format NodeList region24.??? 2 ; Region 24 in zone 2 ArcList origr24.??? 1 ; Keep 1 origr24.l?? ArcListDesc Original Region 24 Nodelist for day %d (%D), %a format NodeList points24.??? GermanPointList NodeDiff pr24diff.??? ArcList points24.??? 3 ArcDiff pr24diff.??? 5 ArcListDesc R24 PointList for day %d (%D), %a format ArcDiffDesc R24 PointDiff for day %d (%D), %a format NodeList cnodelst.??? 2 ; Cnodelst in zone 2 NodeDiff cnodedif.??? ArcList cnodelst.??? 1 ArcDiff cnodedif.??? 5 ArcListDesc Classic German Nodelist for day %d (%D), %a format ArcDiffDesc Classic German Nodediff for day %d (%D), %a format NodeList ptlist.??? ; PointList in "Boss," format ArcList ptlist.??? 1 ; Keep 1 ptlist.l?? ArcListDesc Italian Point List for day %d (%D), %a format NodeList nodelist.??? MsgRem SUE ; log comments beginning with S, U or E NodeDiff NODEDIFF.??? ArcList nodelist.??? 1 ArcDiff nodediff.??? 2 ArcListDesc Fido Nodelist for day %d (%D), %a format ArcDiffDesc Fido Nodediff for day %d (%D), %a format Export region25.??? 2:25 ArcExport region25.??? 1 ArcExportDesc Region 25 %D, %a format NodeList REGION.033 2 ; Region 33 in zone 2 MsgRem SUE ArcList region33.??? ArcListDesc Region 33 (Italy) fido nodelist, %a format NodeList hub.500 2:332 ; Hub 500 nodelist in net 332, zone 2 NodeList MyNodes.Lst ; private list NodeList Apw_Pnts.Lst ; Points in "Boss," format Version7 v7 NODEX2 SYSOP2 ; let's make a second, shorter, nodelist SysOpLst PasswordFile d:\flst\fastlst.pwd NodeList nodelist.??? NodeList REGION.033 2 ; Region 33 in zone 2 ═══ 16.3. Compress Definition ═══ ; Example Compress.Cfg definition file ; ; If you are already using a Compress.Cfg file with other programs, ; you do not need this one. ; Just make sure you use the correct switches to avoid case mismatch ; with case sensitive archivers, as ZIP/UNZIP. Archiver ARC Extension ARC Ident 0,1a OS2 Add arc aw5 %a %f DOS Add pkpak -oct a %a %f OS2 Extract arc ew %a %f DOS Extract pkunpak /r %a %f OS2 View arc vw %a DOS View pkpak v %a End Archiver DOS Archiver PAK DOS Extension PAK DOS Ident -2,fe DOS Add pak a %a %f DOS Extract pak e /wn %a %f DOS View pak v %a DOS End Archiver Archiver ZIP Extension ZIP Ident 0,504b0304 OS2 Add zip -jk %a %f ; store in uppercase DOS Add pkzip -a %a %f OS2 Extract unzip -qqnjC %a %f ; case insensitive extract DOS Extract pkunzip -n %a %f OS2 View unzip -v %a DOS View pkzip -v %a End Archiver Archiver LH Extension LZH Ident 2,2d6c68 ; "-lh" OS2 Add lh a %a %f DOS Add lha a /m %a %f OS2 Extract lh x %a %f /o DOS Extract lha e /m %a %f OS2 View lh l %a /v /o DOS View lha l %a End Archiver Archiver ARJ Extension ARJ Ident 0,60ea DOS Add arj a -e+ %a %f OS2 Extract unarj e %a %f DOS Extract arj e -n %a %f OS2 View unarj l %a DOS View arj l %a End Archiver Archiver RAR Extension RAR Ident 0,526172211a0700 DOS Add rar a %a %f OS2 Extract unrar e %a %f DOS Extract rar e -o- %a %f OS2 View unrar v %a DOS View rar v -y %a End Archiver